nixbot

builds

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

1elastic-arm-2bfcc0ae: building 14ivkaqlp9y8m0la7l1k585w5k5sdy57-python3.14-mcp-2.3.0.drv2structuredAttrs is enabled3Sourcing python-remove-tests-dir-hook4Sourcing python-catch-conflicts-hook.sh5Sourcing python-remove-bin-bytecode-hook.sh6Sourcing pypa-build-hook7Using pypaBuildPhase8Sourcing python-runtime-deps-check-hook9Using pythonRuntimeDepsCheckHook10Sourcing pypa-install-hook11Using pypaInstallPhase12Sourcing python-imports-check-hook.sh13Using pythonImportsCheckPhase14Sourcing python-metadata-check-hook.sh15Using pythonMetadataCheckPhase16Sourcing python-namespaces-hook17Sourcing python-catch-conflicts-hook.sh18Sourcing pytest-check-hook19Using pytestCheckPhase
unpackPhase
20unpacking source archive /nix/store/prbkdf4kv543ij4r95gk96pykmcqy7xp-source21source root is source22setting SOURCE_DATE_EPOCH to timestamp 315619200 of file "source/uv.lock"
configurePhase
23no configure script, doing nothing
buildPhase
24Executing pypaBuildPhase25Setting UV_DYNAMIC_VERSIONING_BYPASS to 2.3.026Creating a wheel...27pypa build flags: --no-isolation --outdir dist/ --wheel28* Getting build dependencies for wheel...29* Building wheel...30Successfully built mcp-2.3.0-py3-none-any.whl31Finished creating a wheel...32Finished executing pypaBuildPhase
pythonRuntimeDepsCheckHook
33Executing pythonRuntimeDepsCheck34Checking runtime dependencies for mcp-2.3.0-py3-none-any.whl35Finished executing pythonRuntimeDepsCheck
installPhase
36Executing pypaInstallPhase37Successfully installed mcp-2.3.0-py3-none-any.whl38Finished executing pypaInstallPhase
pythonOutputDistPhase
39Executing pythonOutputDistPhase40Finished executing pythonOutputDistPhase
fixupPhase
41shrinking RPATHs of ELF executables and libraries in /nix/store/n8kldfkbbw40xi77xq4m5f7an5ms8bgs-python3.14-mcp-2.3.0-dist42checking for references to /build/ in /nix/store/n8kldfkbbw40xi77xq4m5f7an5ms8bgs-python3.14-mcp-2.3.0-dist...43patching script interpreter paths in /nix/store/n8kldfkbbw40xi77xq4m5f7an5ms8bgs-python3.14-mcp-2.3.0-dist44shrinking RPATHs of ELF executables and libraries in /nix/store/15hrd5m71jc40vc7x8pqp07pjb9nivjv-python3.14-mcp-2.3.045checking for references to /build/ in /nix/store/15hrd5m71jc40vc7x8pqp07pjb9nivjv-python3.14-mcp-2.3.0...46patching script interpreter paths in /nix/store/15hrd5m71jc40vc7x8pqp07pjb9nivjv-python3.14-mcp-2.3.047stripping (with command strip and flags -S -p) in /nix/store/15hrd5m71jc40vc7x8pqp07pjb9nivjv-python3.14-mcp-2.3.0/lib /nix/store/15hrd5m71jc40vc7x8pqp07pjb9nivjv-python3.14-mcp-2.3.0/bin48Rewriting #!/nix/store/lq2fsnmg0q3y0vlxn91w8s8wvj1m6fld-python3-3.14.8/bin/python3.14 to #!/nix/store/lq2fsnmg0q3y0vlxn91w8s8wvj1m6fld-python3-3.14.849wrapping `/nix/store/15hrd5m71jc40vc7x8pqp07pjb9nivjv-python3.14-mcp-2.3.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=458============================= 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=function644 workers [5913 items] 65scheduling tests via LoadScheduling6667tests/client/test_streamable_http.py::test_none_disables_the_sse_event_limit 68tests/client/test_client_caching.py::test_a_second_list_tools_within_the_ttl_is_served_from_the_cache 69tests/docs_src/test_media.py::test_in_memory_bytes_with_a_format_become_the_same_image_content_block 70tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions 71[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions 72tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned 73[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned 74tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned 75[gw1] [ 0%] PASSED tests/client/test_client_caching.py::test_a_second_list_tools_within_the_ttl_is_served_from_the_cache 76tests/client/test_client_caching.py::test_an_expired_entry_is_refetched 77[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned 78tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed 79[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed 80tests/cli/test_claude.py::test_generates_uv_run_command 81[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_generates_uv_run_command 82[gw1] [ 0%] PASSED tests/client/test_client_caching.py::test_an_expired_entry_is_refetched 83tests/client/test_client_caching.py::test_each_list_verb_caches_independently_under_its_own_method 84tests/cli/test_claude.py::test_file_spec_without_object_suffix 85[gw2] [ 0%] PASSED tests/client/test_streamable_http.py::test_none_disables_the_sse_event_limit 86[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_file_spec_without_object_suffix 87tests/client/test_streamable_http.py::test_configured_sse_limit_fails_an_oversized_resumption_event 88tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated 89[gw1] [ 0%] PASSED tests/client/test_client_caching.py::test_each_list_verb_caches_independently_under_its_own_method 90[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated 91tests/client/test_client_caching.py::test_read_resource_caches_per_uri 92tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement 93[gw2] [ 0%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_fails_an_oversized_resumption_event 94tests/client/test_streamable_http.py::test_configured_sse_limit_does_not_replay_an_oversized_reconnected_event 95[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement 96tests/cli/test_claude.py::test_with_editable_adds_flag 97[gw2] [ 0%] PASSED tests/client/test_streamable_http.py::test_configured_sse_limit_does_not_replay_an_oversized_reconnected_event 98[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_with_editable_adds_flag 99tests/client/test_streamable_http.py::test_non_sse_reconnection_response_retries_before_failing_the_request 100tests/cli/test_claude.py::test_env_vars_written 101[gw1] [ 0%] PASSED tests/client/test_client_caching.py::test_read_resource_caches_per_uri 102tests/client/test_client_caching.py::test_cursor_continuations_neither_read_nor_write_the_cache 103[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_env_vars_written 104tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins 105[gw2] [ 0%] PASSED tests/client/test_streamable_http.py::test_non_sse_reconnection_response_retries_before_failing_the_request 106[gw1] [ 0%] PASSED tests/client/test_client_caching.py::test_cursor_continuations_neither_read_nor_write_the_cache 107tests/client/test_client_caching.py::test_an_expired_cursor_rejection_evicts_the_methods_entry 108[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins 109tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add-add-False] 110[gw2] [ 0%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add-add-False] 111tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new 112tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[--False] 113[gw1] [ 0%] PASSED tests/client/test_client_caching.py::test_an_expired_cursor_rejection_evicts_the_methods_entry 114[gw2] [ 0%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[--False] 115tests/client/test_client_caching.py::test_an_expired_cursor_rejection_under_bypass_does_not_evict 116[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new 117tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[tool with spaces-tool with spaces-False] 118tests/cli/test_claude.py::test_other_servers_preserved 119[gw2] [ 0%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[tool with spaces-tool with spaces-False] 120[gw1] [ 0%] PASSED tests/client/test_client_caching.py::test_an_expired_cursor_rejection_under_bypass_does_not_evict 121[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_other_servers_preserved 122tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[ add-=?base64?IGFkZA==?=-True] 123tests/client/test_client_caching.py::test_a_non_cursor_error_on_a_continuation_does_not_evict 124tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] 125[gw2] [ 0%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[ add-=?base64?IGFkZA==?=-True] 126[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] 127tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] 128tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add -=?base64?YWRkIA==?=-True] 129[gw2] [ 0%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[add -=?base64?YWRkIA==?=-True] 130tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[r\xe9sum\xe9-=?base64?csOpc3Vtw6k=?=-True] 131[gw3] [ 0%] PASSED tests/docs_src/test_media.py::test_in_memory_bytes_with_a_format_become_the_same_image_content_block 132tests/docs_src/test_media.py::test_path_file_is_read_when_the_result_is_built 133[gw2] [ 0%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[r\xe9sum\xe9-=?base64?csOpc3Vtw6k=?=-True] 134[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] 135tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[a\r\nb-=?base64?YQ0KYg==?=-True] 136tests/cli/test_claude.py::test_raises_when_config_dir_missing 137[gw3] [ 0%] PASSED tests/docs_src/test_media.py::test_path_file_is_read_when_the_result_is_built 138[gw2] [ 0%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[a\r\nb-=?base64?YQ0KYg==?=-True] 139tests/docs_src/test_media.py::test_raw_data_without_a_format_falls_back_to_a_default_mime_type 140[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_raises_when_config_dir_missing 141[gw3] [ 0%] PASSED tests/docs_src/test_media.py::test_raw_data_without_a_format_falls_back_to_a_default_mime_type 142tests/cli/test_claude.py::test_get_uv_path[/usr/local/bin/uv-/usr/local/bin/uv] 143tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[=?base64?Zm9v?=-=?base64?PT9iYXNlNjQ/Wm05dj89?=-True] 144tests/docs_src/test_media.py::test_icons_are_visible_where_they_were_declared 145[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_get_uv_path[/usr/local/bin/uv-/usr/local/bin/uv] 146[gw2] [ 0%] PASSED tests/client/test_streamable_http.py::test_mcp_name_header_values_are_base64_wrapped_when_unsafe_for_an_http_field[=?base64?Zm9v?=-=?base64?PT9iYXNlNjQ/Wm05dj89?=-True] 147tests/client/test_streamable_http.py::test_post_request_merges_per_message_metadata_headers 148tests/cli/test_claude.py::test_get_uv_path[None-uv] 149[gw3] [ 0%] PASSED tests/docs_src/test_media.py::test_icons_are_visible_where_they_were_declared 150[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_get_uv_path[None-uv] 151tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py-C:\\Users\\server.py] 152[gw2] [ 0%] PASSED tests/client/test_streamable_http.py::test_post_request_merges_per_message_metadata_headers 153tests/client/test_streamable_http.py::test_pre_session_bare_404_maps_to_method_not_found 154tests/docs_src/test_middleware.py::test_timing_record_predicate 155[gw3] [ 0%] PASSED tests/docs_src/test_middleware.py::test_timing_record_predicate 156[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py-C:\\Users\\server.py] 157tests/docs_src/test_middleware.py::test_middleware_observes_every_inbound_message 158tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py:app-C:\\Users\\server.py:app] 159[gw2] [ 0%] PASSED tests/client/test_streamable_http.py::test_pre_session_bare_404_maps_to_method_not_found 160tests/client/test_streamable_http.py::test_initialize_post_clears_cached_pv_header_and_unstamped_posts_read_it 161[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py:app-C:\\Users\\server.py:app] 162tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[server.py-None] 163[gw2] [ 0%] PASSED tests/client/test_streamable_http.py::test_initialize_post_clears_cached_pv_header_and_unstamped_posts_read_it 164tests/client/test_streamable_http.py::test_modern_cancelled_frame_aborts_the_matching_in_flight_post 165[gw0] [ 0%] PASSED tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[server.py-None] 166tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[foo.py:srv_obj-srv_obj] 167[gw2] [ 0%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frame_aborts_the_matching_in_flight_post 168tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[no-version-yet] 169[gw0] [ 0%] PASSED tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[foo.py:srv_obj-srv_obj] 170tests/cli/test_utils.py::test_parse_file_path_missing 171[gw2] [ 0%] PASSED tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[no-version-yet] 172[gw0] [ 0%] PASSED tests/cli/test_utils.py::test_parse_file_path_missing 173tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[2025-11-25] 174tests/cli/test_utils.py::test_parse_file_exit_on_dir 175[gw0] [ 0%] PASSED tests/cli/test_utils.py::test_parse_file_exit_on_dir 176tests/cli/test_utils.py::test_build_uv_command_pins_the_running_mcp_version 177[gw2] [ 0%] PASSED tests/client/test_streamable_http.py::test_legacy_cancelled_frame_posts_and_leaves_the_stream_open[2025-11-25] 178tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[unknown-id] 179[gw0] [ 0%] PASSED tests/cli/test_utils.py::test_build_uv_command_pins_the_running_mcp_version 180tests/cli/test_utils.py::test_build_uv_command_leaves_source_builds_unpinned 181[gw0] [ 0%] PASSED tests/cli/test_utils.py::test_build_uv_command_leaves_source_builds_unpinned 182tests/cli/test_utils.py::test_build_uv_command_adds_editable_and_packages 183[gw2] [ 0%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[unknown-id] 184tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[bool-must-not-alias-request-id-1] 185[gw0] [ 0%] PASSED tests/cli/test_utils.py::test_build_uv_command_adds_editable_and_packages 186tests/cli/test_utils.py::test_get_npx_unix_like 187[gw0] [ 0%] PASSED tests/cli/test_utils.py::test_get_npx_unix_like 188[gw2] [ 1%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[bool-must-not-alias-request-id-1] 189tests/cli/test_utils.py::test_get_npx_windows 190tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[string-1-must-not-match-int-1] 191[gw0] [ 1%] PASSED tests/cli/test_utils.py::test_get_npx_windows 192tests/cli/test_utils.py::test_get_npx_returns_none_when_npx_missing 193[gw0] [ 1%] PASSED tests/cli/test_utils.py::test_get_npx_returns_none_when_npx_missing 194[gw2] [ 1%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[string-1-must-not-match-int-1] 195tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-request-id] 196tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info 197[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info 198[gw2] [ 1%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-request-id] 199tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes 200tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-params] 201[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes 202tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post 203[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post 204[gw2] [ 1%] PASSED tests/client/test_streamable_http.py::test_modern_cancelled_frames_matching_no_post_are_swallowed[no-params] 205tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials 206tests/client/test_streamable_http.py::test_handler_scoped_cancelled_frames_are_translated_at_modern_too 207[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials 208tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id 209[gw2] [ 1%] PASSED tests/client/test_streamable_http.py::test_handler_scoped_cancelled_frames_are_translated_at_modern_too 210tests/client/test_streamable_http.py::test_cancel_for_a_request_sent_under_2025_still_posts_after_modern_adoption 211[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id 212tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes 213[gw2] [ 1%] PASSED tests/client/test_streamable_http.py::test_cancel_for_a_request_sent_under_2025_still_posts_after_modern_adoption 214[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes 215tests/client/test_streamable_http.py::test_scope_cancel_aborts_a_modern_listen_post_end_to_end 216tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info 217[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info 218tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials 219[gw2] [ 1%] PASSED tests/client/test_streamable_http.py::test_scope_cancel_aborts_a_modern_listen_post_end_to_end 220[gw3] [ 1%] PASSED tests/docs_src/test_middleware.py::test_middleware_observes_every_inbound_message 221tests/client/test_streamable_http.py::test_a_finished_post_task_does_not_evict_a_reused_ids_new_registration 222tests/docs_src/test_middleware.py::test_the_result_passes_through_unchanged 223[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials 224tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes 225[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes 226tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider 227[gw3] [ 1%] PASSED tests/docs_src/test_middleware.py::test_the_result_passes_through_unchanged 228tests/docs_src/test_middleware.py::test_a_notification_has_no_request_id 229[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider 230tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims 231[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims 232tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token 233[gw3] [ 1%] PASSED tests/docs_src/test_middleware.py::test_a_notification_has_no_request_id 234tests/docs_src/test_middleware.py::test_raising_before_call_next_refuses_the_message 235[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token 236tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] 237[gw3] [ 1%] PASSED tests/docs_src/test_middleware.py::test_raising_before_call_next_refuses_the_message 238tests/docs_src/test_middleware.py::test_an_unhandled_method_raises_through_the_middleware 239[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] 240tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] 241[gw3] [ 1%] PASSED tests/docs_src/test_middleware.py::test_an_unhandled_method_raises_through_the_middleware 242[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] 243tests/docs_src/test_middleware.py::test_initialize_cannot_be_replaced_only_wrapped 244tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] 245[gw3] [ 1%] PASSED tests/docs_src/test_middleware.py::test_initialize_cannot_be_replaced_only_wrapped 246tests/docs_src/test_middleware.py::test_a_tool_call_over_the_cap_is_refused_while_the_earlier_calls_still_run 247[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] 248tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] 249[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] 250tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] 251[gw3] [ 1%] PASSED tests/docs_src/test_middleware.py::test_a_tool_call_over_the_cap_is_refused_while_the_earlier_calls_still_run 252[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] 253tests/docs_src/test_middleware.py::test_other_requests_are_answered_with_the_cap_reached 254tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] 255[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] 256[gw3] [ 1%] PASSED tests/docs_src/test_middleware.py::test_other_requests_are_answered_with_the_cap_reached 257tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] 258tests/docs_src/test_middleware.py::test_a_refused_call_is_accepted_once_a_running_call_finishes 259[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] 260tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] 261[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] 262[gw3] [ 1%] PASSED tests/docs_src/test_middleware.py::test_a_refused_call_is_accepted_once_a_running_call_finishes 263tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] 264tests/docs_src/test_middleware.py::test_a_tool_call_that_raises_gives_its_slot_back 265[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] 266tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] 267[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] 268tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction 269[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction 270tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] 271[gw3] [ 1%] PASSED tests/docs_src/test_middleware.py::test_a_tool_call_that_raises_gives_its_slot_back 272tests/docs_src/test_middleware.py::test_a_cancelled_tool_call_gives_its_slot_back 273[gw3] [ 1%] PASSED tests/docs_src/test_middleware.py::test_a_cancelled_tool_call_gives_its_slot_back 274tests/docs_src/test_middleware.py::test_answering_with_an_error_result_returns_it_to_the_caller_instead_of_raising 275[gw3] [ 1%] PASSED tests/docs_src/test_middleware.py::test_answering_with_an_error_result_returns_it_to_the_caller_instead_of_raising 276tests/docs_src/test_middleware.py::test_calls_made_one_after_another_never_reach_the_cap 277[gw3] [ 1%] PASSED tests/docs_src/test_middleware.py::test_calls_made_one_after_another_never_reach_the_cap 278[gw2] [ 1%] PASSED tests/client/test_streamable_http.py::test_a_finished_post_task_does_not_evict_a_reused_ids_new_registration 279tests/client/test_streamable_http.py::test_a_non_resumable_sse_drop_resolves_the_request_with_an_error 280tests/docs_src/test_mrtr.py::test_first_call_returns_an_input_required_result 281[gw2] [ 1%] PASSED tests/client/test_streamable_http.py::test_a_non_resumable_sse_drop_resolves_the_request_with_an_error 282tests/client/test_streamable_http.py::test_a_superseded_posts_late_real_response_cannot_answer_the_successor 283[gw3] [ 1%] PASSED tests/docs_src/test_mrtr.py::test_first_call_returns_an_input_required_result 284tests/docs_src/test_mrtr.py::test_the_auto_loop_drives_the_call_to_completion 285[gw3] [ 1%] PASSED tests/docs_src/test_mrtr.py::test_the_auto_loop_drives_the_call_to_completion 286tests/docs_src/test_mrtr.py::test_the_auto_loop_without_a_callback_raises_mcp_error 287[gw1] [ 1%] PASSED tests/client/test_client_caching.py::test_a_non_cursor_error_on_a_continuation_does_not_evict 288[gw3] [ 1%] PASSED tests/docs_src/test_mrtr.py::test_the_auto_loop_without_a_callback_raises_mcp_error 289tests/docs_src/test_mrtr.py::test_retry_with_input_responses_and_request_state_completes_the_call 290tests/client/test_client_caching.py::test_bypass_neither_serves_nor_disturbs_a_warm_entry 291[gw3] [ 1%] PASSED tests/docs_src/test_mrtr.py::test_retry_with_input_responses_and_request_state_completes_the_call 292tests/docs_src/test_mrtr.py::test_the_manual_loop_drives_the_call_to_completion 293[gw1] [ 1%] PASSED tests/client/test_client_caching.py::test_bypass_neither_serves_nor_disturbs_a_warm_entry 294tests/client/test_client_caching.py::test_refresh_skips_the_read_and_stores_the_refetched_result 295[gw3] [ 1%] PASSED tests/docs_src/test_mrtr.py::test_the_manual_loop_drives_the_call_to_completion 296tests/docs_src/test_mrtr.py::test_the_in_memory_client_negotiates_2026_07_28 297[gw1] [ 1%] PASSED tests/client/test_client_caching.py::test_refresh_skips_the_read_and_stores_the_refetched_result 298tests/client/test_client_caching.py::test_refresh_storing_a_ttl_zero_result_purges_the_warm_entry 299[gw3] [ 1%] PASSED tests/docs_src/test_mrtr.py::test_the_in_memory_client_negotiates_2026_07_28 300tests/docs_src/test_mrtr.py::test_a_pre_2026_session_has_nowhere_to_put_the_result 301[gw1] [ 1%] PASSED tests/client/test_client_caching.py::test_refresh_storing_a_ttl_zero_result_purges_the_warm_entry 302tests/client/test_client_caching.py::test_a_list_call_carrying_meta_is_fetched_and_replaces_the_warm_entry 303[gw1] [ 1%] PASSED tests/client/test_client_caching.py::test_a_list_call_carrying_meta_is_fetched_and_replaces_the_warm_entry 304tests/client/test_client_caching.py::test_a_read_resource_carrying_meta_is_fetched_and_replaces_the_warm_entry 305[gw0] [ 1%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] 306tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] 307[gw1] [ 2%] PASSED tests/client/test_client_caching.py::test_a_read_resource_carrying_meta_is_fetched_and_replaces_the_warm_entry 308tests/client/test_client_caching.py::test_cache_mode_is_inert_when_caching_is_disabled 309[gw1] [ 2%] PASSED tests/client/test_client_caching.py::test_cache_mode_is_inert_when_caching_is_disabled 310tests/client/test_client_caching.py::test_a_seeded_read_resource_skips_the_cache_and_ignores_cache_mode[request_state] 311[gw3] [ 2%] PASSED tests/docs_src/test_mrtr.py::test_a_pre_2026_session_has_nowhere_to_put_the_result 312tests/docs_src/test_mrtr.py::test_fulfil_refuses_a_request_it_cannot_answer 313[gw3] [ 2%] PASSED tests/docs_src/test_mrtr.py::test_fulfil_refuses_a_request_it_cannot_answer 314tests/docs_src/test_mrtr.py::test_a_prompt_returns_an_input_required_result_on_the_first_round 315[gw1] [ 2%] PASSED tests/client/test_client_caching.py::test_a_seeded_read_resource_skips_the_cache_and_ignores_cache_mode[request_state] 316tests/client/test_client_caching.py::test_a_seeded_read_resource_skips_the_cache_and_ignores_cache_mode[input_responses] 317[gw0] [ 2%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] 318[gw3] [ 2%] PASSED tests/docs_src/test_mrtr.py::test_a_prompt_returns_an_input_required_result_on_the_first_round 319[gw1] [ 2%] PASSED tests/client/test_client_caching.py::test_a_seeded_read_resource_skips_the_cache_and_ignores_cache_mode[input_responses] 320tests/docs_src/test_mrtr.py::test_the_prompt_auto_loop_returns_the_final_messages 321tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] 322tests/client/test_client_caching.py::test_a_terminal_read_reached_through_driver_rounds_is_never_cached 323[gw3] [ 2%] PASSED tests/docs_src/test_mrtr.py::test_the_prompt_auto_loop_returns_the_final_messages 324tests/docs_src/test_mrtr.py::test_a_custom_codec_round_trips_what_it_sealed 325[gw3] [ 2%] PASSED tests/docs_src/test_mrtr.py::test_a_custom_codec_round_trips_what_it_sealed 326tests/docs_src/test_mrtr.py::test_a_custom_codec_raises_invalid_request_state_for_any_bad_token 327[gw1] [ 2%] PASSED tests/client/test_client_caching.py::test_a_terminal_read_reached_through_driver_rounds_is_never_cached 328tests/client/test_client_caching.py::test_a_refresh_that_resolves_to_input_required_purges_the_warm_entry 329[gw3] [ 2%] PASSED tests/docs_src/test_mrtr.py::test_a_custom_codec_raises_invalid_request_state_for_any_bad_token 330tests/docs_src/test_mrtr.py::test_a_custom_codec_rejects_every_alias_of_a_minted_token 331[gw3] [ 2%] PASSED tests/docs_src/test_mrtr.py::test_a_custom_codec_rejects_every_alias_of_a_minted_token 332tests/docs_src/test_oauth_clients.py::test_in_memory_storage_satisfies_the_token_storage_protocol 333[gw3] [ 2%] PASSED tests/docs_src/test_oauth_clients.py::test_in_memory_storage_satisfies_the_token_storage_protocol 334[gw1] [ 2%] PASSED tests/client/test_client_caching.py::test_a_refresh_that_resolves_to_input_required_purges_the_warm_entry 335tests/docs_src/test_oauth_clients.py::test_storage_round_trips_tokens_and_client_info 336tests/client/test_client_caching.py::test_a_listing_served_from_a_shared_store_rebuilds_output_schemas 337[gw0] [ 2%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] 338[gw3] [ 2%] PASSED tests/docs_src/test_oauth_clients.py::test_storage_round_trips_tokens_and_client_info 339tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] 340tests/docs_src/test_oauth_clients.py::test_the_provider_is_an_httpx_auth 341[gw3] [ 2%] PASSED tests/docs_src/test_oauth_clients.py::test_the_provider_is_an_httpx_auth 342tests/docs_src/test_oauth_clients.py::test_the_metadata_defaults_are_the_authorization_code_flow 343[gw3] [ 2%] PASSED tests/docs_src/test_oauth_clients.py::test_the_metadata_defaults_are_the_authorization_code_flow 344tests/docs_src/test_oauth_clients.py::test_redirect_uris_is_required 345[gw2] [ 2%] PASSED tests/client/test_streamable_http.py::test_a_superseded_posts_late_real_response_cannot_answer_the_successor 346tests/client/test_streamable_http.py::test_a_202_to_a_request_resolves_the_waiter_with_an_error 347[gw3] [ 2%] PASSED tests/docs_src/test_oauth_clients.py::test_redirect_uris_is_required 348tests/docs_src/test_oauth_clients.py::test_the_redirect_handler_receives_the_authorization_url 349[gw3] [ 2%] PASSED tests/docs_src/test_oauth_clients.py::test_the_redirect_handler_receives_the_authorization_url 350[gw2] [ 2%] PASSED tests/client/test_streamable_http.py::test_a_202_to_a_request_resolves_the_waiter_with_an_error 351tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_has_no_human_in_the_loop 352[gw3] [ 2%] PASSED tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_has_no_human_in_the_loop 353tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_builds_its_own_metadata 354tests/client/test_streamable_http.py::test_exhausted_reconnection_attempts_resolve_the_request_with_an_error 355[gw3] [ 2%] PASSED tests/docs_src/test_oauth_clients.py::test_client_credentials_provider_builds_its_own_metadata 356tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[ClientCredentialsOAuthProvider] 357[gw0] [ 2%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] 358tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] 359[gw3] [ 2%] PASSED tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[ClientCredentialsOAuthProvider] 360tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[PrivateKeyJWTOAuthProvider] 361[gw3] [ 2%] PASSED tests/docs_src/test_oauth_clients.py::test_issuer_is_an_optional_keyword_on_both_machine_to_machine_providers[PrivateKeyJWTOAuthProvider] 362tests/docs_src/test_oauth_clients.py::test_the_two_remaining_keyword_arguments_have_defaults 363[gw3] [ 2%] PASSED tests/docs_src/test_oauth_clients.py::test_the_two_remaining_keyword_arguments_have_defaults 364tests/docs_src/test_oauth_clients.py::test_the_one_more_provider_is_private_key_jwt 365[gw3] [ 2%] PASSED tests/docs_src/test_oauth_clients.py::test_the_one_more_provider_is_private_key_jwt 366tests/docs_src/test_oauth_clients.py::test_every_oauth_error_is_an_oauth_flow_error 367[gw2] [ 2%] PASSED tests/client/test_streamable_http.py::test_exhausted_reconnection_attempts_resolve_the_request_with_an_error 368tests/client/test_streamable_http.py::test_resolving_an_abandoned_request_after_the_reader_closed_is_contained 369[gw3] [ 2%] PASSED tests/docs_src/test_oauth_clients.py::test_every_oauth_error_is_an_oauth_flow_error 370tests/docs_src/test_oauth_clients.py::test_not_everything_is_a_flow_error 371[gw3] [ 2%] PASSED tests/docs_src/test_oauth_clients.py::test_not_everything_is_a_flow_error 372tests/docs_src/test_opentelemetry.py::test_a_plain_server_is_traced_with_no_extra_code 373[gw0] [ 2%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] 374tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[jwt] 375[gw2] [ 2%] PASSED tests/client/test_streamable_http.py::test_resolving_an_abandoned_request_after_the_reader_closed_is_contained 376tests/client/test_streamable_http.py::test_trailing_slash_redirect_within_origin_is_followed_by_the_transport 377[gw2] [ 2%] PASSED tests/client/test_streamable_http.py::test_trailing_slash_redirect_within_origin_is_followed_by_the_transport 378tests/client/test_streamable_http.py::test_redirect_to_another_origin_fails_that_call_and_keeps_the_session 379[gw0] [ 2%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[jwt] 380tests/client/auth/extensions/test_identity_assertion.py::test_on_401_exchanges_assertion_at_configured_issuer_and_retries 381[gw0] [ 2%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_on_401_exchanges_assertion_at_configured_issuer_and_retries 382tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted 383[gw0] [ 2%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted 384tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion 385[gw0] [ 2%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion 386tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises 387[gw0] [ 2%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises 388tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion 389[gw0] [ 2%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion 390tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion 391[gw0] [ 2%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion 392tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured 393[gw0] [ 2%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured 394tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize 395[gw0] [ 2%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize 396tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error 397[gw0] [ 2%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error 398tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret 399[gw0] [ 2%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret 400tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing 401[gw0] [ 2%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing 402tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm 403[gw0] [ 2%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm 404tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request 405[gw0] [ 2%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request 406tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected 407[gw0] [ 2%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected 408tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected 409[gw0] [ 2%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected 410tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports 411[gw0] [ 2%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports 412tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation 413[gw0] [ 2%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation 414tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness 415[gw0] [ 2%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness 416tests/client/test_auth.py::TestOAuthContext::test_oauth_provider_initialization 417[gw0] [ 2%] PASSED tests/client/test_auth.py::TestOAuthContext::test_oauth_provider_initialization 418tests/client/test_auth.py::TestOAuthContext::test_context_url_parsing 419[gw2] [ 2%] PASSED tests/client/test_streamable_http.py::test_redirect_to_another_origin_fails_that_call_and_keeps_the_session 420tests/client/test_streamable_http.py::test_redirected_notification_is_dropped_and_the_next_message_still_goes_out 421[gw0] [ 2%] PASSED tests/client/test_auth.py::TestOAuthContext::test_context_url_parsing 422tests/client/test_auth.py::TestOAuthContext::test_token_validity_checking 423[gw0] [ 2%] PASSED tests/client/test_auth.py::TestOAuthContext::test_token_validity_checking 424tests/client/test_auth.py::TestOAuthContext::test_clear_tokens 425[gw0] [ 3%] PASSED tests/client/test_auth.py::TestOAuthContext::test_clear_tokens 426tests/client/test_auth.py::TestOAuthFlow::test_build_protected_resource_discovery_urls 427[gw0] [ 3%] PASSED tests/client/test_auth.py::TestOAuthFlow::test_build_protected_resource_discovery_urls 428tests/client/test_auth.py::TestOAuthFlow::test_create_oauth_metadata_request 429[gw0] [ 3%] PASSED tests/client/test_auth.py::TestOAuthFlow::test_create_oauth_metadata_request 430tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_legacy_fallback_when_no_prm 431[gw0] [ 3%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_legacy_fallback_when_no_prm 432tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_path_aware_when_auth_server_has_path 433[gw0] [ 3%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_path_aware_when_auth_server_has_path 434tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_no_path 435[gw0] [ 3%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_no_path 436tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_only_slash 437[gw0] [ 3%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_only_slash 438tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_order 439[gw0] [ 3%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_order 440tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_conditions 441[gw0] [ 3%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_conditions 442tests/client/test_auth.py::TestOAuthFallback::test_handle_metadata_response_success 443[gw2] [ 3%] PASSED tests/client/test_streamable_http.py::test_redirected_notification_is_dropped_and_the_next_message_still_goes_out 444[gw0] [ 3%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_handle_metadata_response_success 445tests/client/test_streamable_http.py::test_get_stream_gives_up_without_retrying_when_the_endpoint_redirects_elsewhere 446tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm 447[gw0] [ 3%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm 448tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope 449[gw0] [ 3%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope 450tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth 451[gw0] [ 3%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth 452tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code 453[gw0] [ 3%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code 454tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request 455[gw2] [ 3%] PASSED tests/client/test_streamable_http.py::test_get_stream_gives_up_without_retrying_when_the_endpoint_redirects_elsewhere 456[gw0] [ 3%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request 457tests/client/test_streamable_http.py::test_resumption_redirected_elsewhere_resolves_that_request_with_an_error 458tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange 459[gw0] [ 3%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange 460tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token 461[gw0] [ 3%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token 462tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method 463[gw0] [ 3%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method 464tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version 465[gw0] [ 3%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version 466tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version 467[gw0] [ 3%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version 468tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata 469[gw0] [ 3%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata 470tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request 471[gw0] [ 3%] PASSED tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request 472tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin 473[gw0] [ 3%] PASSED tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin 474tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops 475[gw0] [ 3%] PASSED tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops 476tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] 477[gw0] [ 3%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] 478tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] 479[gw0] [ 3%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] 480tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] 481[gw0] [ 3%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] 482tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-03-26-False] 483[gw0] [ 3%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-03-26-False] 484tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-06-18-True] 485[gw0] [ 3%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-06-18-True] 486tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-11-25-True] 487[gw0] [ 3%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-11-25-True] 488tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[zzz-False] 489[gw0] [ 3%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[zzz-False] 490tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[9999-99-99-False] 491[gw0] [ 3%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[9999-99-99-False] 492tests/client/test_auth.py::test_validate_resource_rejects_mismatched_resource 493[gw0] [ 3%] PASSED tests/client/test_auth.py::test_validate_resource_rejects_mismatched_resource 494tests/client/test_auth.py::test_validate_resource_accepts_matching_resource 495[gw0] [ 3%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_matching_resource 496tests/client/test_auth.py::test_validate_resource_custom_callback 497[gw0] [ 3%] PASSED tests/client/test_auth.py::test_validate_resource_custom_callback 498tests/client/test_auth.py::test_validate_resource_accepts_root_url_with_trailing_slash 499[gw0] [ 3%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_root_url_with_trailing_slash 500tests/client/test_auth.py::test_validate_resource_accepts_server_url_with_trailing_slash 501[gw0] [ 3%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_server_url_with_trailing_slash 502tests/client/test_auth.py::test_get_resource_url_uses_canonical_when_prm_mismatches 503[gw0] [ 3%] PASSED tests/client/test_auth.py::test_get_resource_url_uses_canonical_when_prm_mismatches 504tests/client/test_auth.py::TestRegistrationResponse::test_handle_registration_response_reads_before_accessing_text 505[gw0] [ 3%] PASSED tests/client/test_auth.py::TestRegistrationResponse::test_handle_registration_response_reads_before_accessing_text 506tests/client/test_auth.py::TestRegistrationResponse::test_registration_error_names_an_unfollowed_redirect 507[gw0] [ 3%] PASSED tests/client/test_auth.py::TestRegistrationResponse::test_registration_error_names_an_unfollowed_redirect 508tests/client/test_auth.py::test_registration_response_with_substituted_metadata_yields_the_credentials 509[gw0] [ 3%] PASSED tests/client/test_auth.py::test_registration_response_with_substituted_metadata_yields_the_credentials 510tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[string] 511[gw0] [ 3%] PASSED tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[string] 512tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[not-a-string] 513[gw0] [ 3%] PASSED tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[not-a-string] 514tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-json] 515[gw0] [ 3%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-json] 516tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-an-object] 517[gw0] [ 3%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-an-object] 518tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-utf8] 519[gw0] [ 3%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-utf8] 520tests/client/test_auth.py::test_token_exchange_reports_an_unimplemented_registered_auth_method 521[gw0] [ 3%] PASSED tests/client/test_auth.py::test_token_exchange_reports_an_unimplemented_registered_auth_method 522tests/client/test_auth.py::test_prepare_token_auth_leaves_a_private_key_jwt_client_to_its_provider 523[gw0] [ 3%] PASSED tests/client/test_auth.py::test_prepare_token_auth_leaves_a_private_key_jwt_client_to_its_provider 524tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_uses_registration_endpoint_from_metadata 525[gw0] [ 3%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_uses_registration_endpoint_from_metadata 526tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_to_default_register_endpoint_when_no_metadata 527[gw0] [ 3%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_to_default_register_endpoint_when_no_metadata 528tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_when_metadata_has_no_registration_endpoint 529[gw0] [ 3%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_when_metadata_has_no_registration_endpoint 530tests/client/test_auth.py::test_registration_request_sends_application_type 531[gw0] [ 3%] PASSED tests/client/test_auth.py::test_registration_request_sends_application_type 532tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_valid_tokens 533[gw0] [ 3%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_valid_tokens 534tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_no_tokens 535[gw0] [ 3%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_no_tokens 536tests/client/test_auth.py::TestAuthFlow::test_auth_flow_no_unnecessary_retry_after_oauth 537[gw0] [ 3%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_no_unnecessary_retry_after_oauth 538tests/client/test_auth.py::TestAuthFlow::test_token_exchange_accepts_201_status 539[gw0] [ 3%] PASSED tests/client/test_auth.py::TestAuthFlow::test_token_exchange_accepts_201_status 540tests/client/test_auth.py::TestAuthFlow::test_403_insufficient_scope_updates_scope_from_header 541[gw0] [ 3%] PASSED tests/client/test_auth.py::TestAuthFlow::test_403_insufficient_scope_updates_scope_from_header 542tests/client/test_auth.py::test_403_step_up_preserves_scope_from_stored_token 543[gw0] [ 4%] PASSED tests/client/test_auth.py::test_403_step_up_preserves_scope_from_stored_token 544tests/client/test_auth.py::test_scope_step_up_discovers_the_authorization_server_before_reauthorizing 545[gw0] [ 4%] PASSED tests/client/test_auth.py::test_scope_step_up_discovers_the_authorization_server_before_reauthorizing 546tests/client/test_auth.py::test_403_without_a_scope_challenge_is_returned_to_the_caller 547[gw0] [ 4%] PASSED tests/client/test_auth.py::test_403_without_a_scope_challenge_is_returned_to_the_caller 548tests/client/test_auth.py::test_build_metadata[simple-url] 549[gw2] [ 4%] PASSED tests/client/test_streamable_http.py::test_resumption_redirected_elsewhere_resolves_that_request_with_an_error 550tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_is_explained_and_the_https_form_suggested 551[gw2] [ 4%] PASSED tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_is_explained_and_the_https_form_suggested 552tests/client/test_streamable_http.py::test_unfollowed_redirect_location_is_named_without_its_query_string 553[gw3] [ 4%] PASSED tests/docs_src/test_opentelemetry.py::test_a_plain_server_is_traced_with_no_extra_code 554tests/docs_src/test_opentelemetry.py::test_client_and_server_share_one_trace 555[gw3] [ 4%] PASSED tests/docs_src/test_opentelemetry.py::test_client_and_server_share_one_trace 556tests/docs_src/test_pagination.py::test_mcpserver_never_pages 557[gw2] [ 4%] PASSED tests/client/test_streamable_http.py::test_unfollowed_redirect_location_is_named_without_its_query_string 558tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_elsewhere_never_suggests_the_http_url 559[gw3] [ 4%] PASSED tests/docs_src/test_pagination.py::test_mcpserver_never_pages 560tests/docs_src/test_pagination.py::test_first_page_has_ten_resources_and_a_cursor 561[gw3] [ 4%] PASSED tests/docs_src/test_pagination.py::test_first_page_has_ten_resources_and_a_cursor 562[gw0] [ 4%] XFAIL tests/client/test_auth.py::test_build_metadata[simple-url] 563tests/docs_src/test_pagination.py::test_the_cursor_resumes_where_the_last_page_stopped 564[gw3] [ 4%] PASSED tests/docs_src/test_pagination.py::test_the_cursor_resumes_where_the_last_page_stopped 565tests/client/test_auth.py::test_build_metadata[with-trailing-slash] 566tests/docs_src/test_pagination.py::test_the_last_page_carries_no_cursor 567[gw0] [ 4%] PASSED tests/client/test_auth.py::test_build_metadata[with-trailing-slash] 568tests/client/test_auth.py::test_build_metadata[with-path-param] 569[gw3] [ 4%] PASSED tests/docs_src/test_pagination.py::test_the_last_page_carries_no_cursor 570tests/docs_src/test_pagination.py::test_the_client_loop_collects_all_one_hundred_in_order 571[gw0] [ 4%] PASSED tests/client/test_auth.py::test_build_metadata[with-path-param] 572tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_no_prm_falls_back_to_root_oauth_discovery 573[gw0] [ 4%] PASSED tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_no_prm_falls_back_to_root_oauth_discovery 574tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_with_different_prm_and_root_urls 575[gw2] [ 4%] PASSED tests/client/test_streamable_http.py::test_https_endpoint_redirected_to_plain_http_elsewhere_never_suggests_the_http_url 576[gw3] [ 4%] PASSED tests/docs_src/test_pagination.py::test_the_client_loop_collects_all_one_hundred_in_order 577[gw0] [ 4%] PASSED tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_with_different_prm_and_root_urls 578tests/client/test_subscriptions.py::test_listen_surfaces_the_honored_filter_and_subscription_id 579tests/docs_src/test_pagination.py::test_the_client_loop_runs_once_against_a_server_that_does_not_page 580tests/client/test_auth.py::TestSEP985Discovery::test_path_based_fallback_when_no_www_authenticate 581[gw2] [ 4%] PASSED tests/client/test_subscriptions.py::test_listen_surfaces_the_honored_filter_and_subscription_id 582[gw3] [ 4%] PASSED tests/docs_src/test_pagination.py::test_the_client_loop_runs_once_against_a_server_that_does_not_page 583[gw0] [ 4%] PASSED tests/client/test_auth.py::TestSEP985Discovery::test_path_based_fallback_when_no_www_authenticate 584tests/client/test_auth.py::TestSEP985Discovery::test_root_based_fallback_after_path_based_404 585tests/docs_src/test_pagination.py::test_an_invented_cursor_is_an_error 586tests/client/test_subscriptions.py::test_listen_delivers_all_four_typed_event_kinds 587[gw0] [ 4%] PASSED tests/client/test_auth.py::TestSEP985Discovery::test_root_based_fallback_after_path_based_404 588tests/client/test_auth.py::TestSEP985Discovery::test_www_authenticate_takes_priority_over_well_known 589[gw2] [ 4%] PASSED tests/client/test_subscriptions.py::test_listen_delivers_all_four_typed_event_kinds 590tests/client/test_subscriptions.py::test_unconsumed_duplicate_events_coalesce 591[gw0] [ 4%] PASSED tests/client/test_auth.py::TestSEP985Discovery::test_www_authenticate_takes_priority_over_well_known 592tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="read write"-scope-read write] 593[gw1] [ 4%] PASSED tests/client/test_client_caching.py::test_a_listing_served_from_a_shared_store_rebuilds_output_schemas 594tests/client/test_client_caching.py::test_validation_from_a_served_listing_rejects_missing_structured_content 595[gw0] [ 4%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="read write"-scope-read write] 596tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer resource_metadata="https://api.example.com/.well-known/oauth-protected-resource"-resource_metadata-https://api.example.com/.well-known/oauth-protected-resource] 597[gw0] [ 4%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer resource_metadata="https://api.example.com/.well-known/oauth-protected-resource"-resource_metadata-https://api.example.com/.well-known/oauth-protected-resource] 598tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error="insufficient_scope"-error-insufficient_scope] 599[gw1] [ 4%] PASSED tests/client/test_client_caching.py::test_validation_from_a_served_listing_rejects_missing_structured_content 600[gw0] [ 4%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error="insufficient_scope"-error-insufficient_scope] 601tests/client/test_client_caching.py::test_a_cache_hit_listing_still_mirrors_x_mcp_headers_on_tools_call 602tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope=read-scope-read] 603[gw0] [ 4%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope=read-scope-read] 604tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer resource_metadata=https://api.example.com/.well-known/oauth-protected-resource-resource_metadata-https://api.example.com/.well-known/oauth-protected-resource] 605[gw3] [ 4%] PASSED tests/docs_src/test_pagination.py::test_an_invented_cursor_is_an_error 606[gw0] [ 4%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer resource_metadata=https://api.example.com/.well-known/oauth-protected-resource-resource_metadata-https://api.example.com/.well-known/oauth-protected-resource] 607tests/docs_src/test_progress.py::test_context_parameter_is_invisible_to_the_model 608tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error=invalid_token-error-invalid_token] 609[gw0] [ 4%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error=invalid_token-error-invalid_token] 610[gw3] [ 4%] PASSED tests/docs_src/test_progress.py::test_context_parameter_is_invisible_to_the_model 611tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope="admin:write resource:read", error="insufficient_scope"-scope-admin:write resource:read] 612tests/docs_src/test_progress.py::test_each_report_becomes_one_callback_invocation_in_order 613[gw1] [ 4%] PASSED tests/client/test_client_caching.py::test_a_cache_hit_listing_still_mirrors_x_mcp_headers_on_tools_call 614[gw0] [ 4%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope="admin:write resource:read", error="insufficient_scope"-scope-admin:write resource:read] 615tests/client/test_client_caching.py::test_a_shared_store_hit_prunes_a_header_map_the_writers_filter_dropped 616tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", resource_metadata="https://api.example.com/.well-known/oauth-protected-resource", error="insufficient_scope"-resource_metadata-https://api.example.com/.well-known/oauth-protected-resource] 617[gw3] [ 4%] PASSED tests/docs_src/test_progress.py::test_each_report_becomes_one_callback_invocation_in_order 618[gw0] [ 4%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", resource_metadata="https://api.example.com/.well-known/oauth-protected-resource", error="insufficient_scope"-resource_metadata-https://api.example.com/.well-known/oauth-protected-resource] 619tests/docs_src/test_progress.py::test_over_a_wire_dispatcher_callbacks_race_the_result 620tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope=basic-scope-basic] 621[gw0] [ 4%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope=basic-scope-basic] 622tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="resource:read resource:write user_profile"-scope-resource:read resource:write user_profile] 623[gw0] [ 4%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="resource:read resource:write user_profile"-scope-resource:read resource:write user_profile] 624tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer resource_metadata="https://api.example.com/auth/metadata?version=1"-resource_metadata-https://api.example.com/auth/metadata?version=1] 625[gw3] [ 4%] PASSED tests/docs_src/test_progress.py::test_over_a_wire_dispatcher_callbacks_race_the_result 626tests/docs_src/test_progress.py::test_without_a_callback_report_progress_is_a_no_op 627[gw0] [ 4%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer resource_metadata="https://api.example.com/auth/metadata?version=1"-resource_metadata-https://api.example.com/auth/metadata?version=1] 628tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[None-scope-no WWW-Authenticate header] 629[gw0] [ 4%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[None-scope-no WWW-Authenticate header] 630tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[-scope-empty WWW-Authenticate header] 631[gw3] [ 4%] PASSED tests/docs_src/test_progress.py::test_without_a_callback_report_progress_is_a_no_op 632tests/docs_src/test_progress.py::test_progress_callback_is_per_call_not_per_client 633[gw0] [ 4%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[-scope-empty WWW-Authenticate header] 634tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer realm="api", error="insufficient_scope"-scope-no scope parameter] 635[gw3] [ 4%] PASSED tests/docs_src/test_progress.py::test_progress_callback_is_per_call_not_per_client 636tests/docs_src/test_progress.py::test_omitting_total_reaches_the_callback_as_none 637[gw0] [ 4%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer realm="api", error="insufficient_scope"-scope-no scope parameter] 638tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer realm="api", scope="read write"-resource_metadata-no resource_metadata parameter] 639[gw3] [ 4%] PASSED tests/docs_src/test_progress.py::test_omitting_total_reaches_the_callback_as_none 640[gw0] [ 4%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer realm="api", scope="read write"-resource_metadata-no resource_metadata parameter] 641tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer scope=-scope-malformed scope parameter] 642tests/docs_src/test_prompts.py::test_function_becomes_the_prompt 643[gw0] [ 4%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer scope=-scope-malformed scope parameter] 644tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer resource_metadata=-resource_metadata-malformed resource_metadata parameter] 645[gw1] [ 4%] PASSED tests/client/test_client_caching.py::test_a_shared_store_hit_prunes_a_header_map_the_writers_filter_dropped 646tests/client/test_client_caching.py::test_a_tools_list_changed_notification_makes_the_next_list_refetch 647[gw3] [ 4%] PASSED tests/docs_src/test_prompts.py::test_function_becomes_the_prompt 648tests/docs_src/test_prompts.py::test_returned_string_becomes_one_user_message 649[gw0] [ 4%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer resource_metadata=-resource_metadata-malformed resource_metadata parameter] 650tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-True] 651[gw0] [ 4%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-True] 652tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-metadata.json-True] 653[gw3] [ 4%] PASSED tests/docs_src/test_prompts.py::test_returned_string_becomes_one_user_message 654[gw0] [ 4%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-metadata.json-True] 655tests/docs_src/test_prompts.py::test_missing_required_argument_is_a_protocol_error 656tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/path/to/client-True] 657[gw1] [ 4%] PASSED tests/client/test_client_caching.py::test_a_tools_list_changed_notification_makes_the_next_list_refetch 658tests/client/test_client_caching.py::test_a_resource_updated_notification_evicts_that_uris_read_entry 659[gw0] [ 4%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/path/to/client-True] 660tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com:8443/client-True] 661[gw0] [ 5%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com:8443/client-True] 662tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://example.com/client-False] 663[gw0] [ 5%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://example.com/client-False] 664[gw1] [ 5%] PASSED tests/client/test_client_caching.py::test_a_resource_updated_notification_evicts_that_uris_read_entry 665tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com-False] 666tests/client/test_client_caching.py::test_the_modern_in_process_path_drops_the_eviction_notification 667[gw0] [ 5%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com-False] 668tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/-False] 669[gw0] [ 5%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/-False] 670tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[None-False] 671[gw1] [ 5%] PASSED tests/client/test_client_caching.py::test_the_modern_in_process_path_drops_the_eviction_notification 672tests/client/test_client_caching.py::test_a_discover_result_never_enters_the_response_cache 673[gw0] [ 5%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[None-False] 674tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[-False] 675[gw2] [ 5%] PASSED tests/client/test_subscriptions.py::test_unconsumed_duplicate_events_coalesce 676[gw1] [ 5%] PASSED tests/client/test_client_caching.py::test_a_discover_result_never_enters_the_response_cache 677[gw0] [ 5%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[-False] 678tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://[::1/foo/-False] 679tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5] 680tests/client/test_subscriptions.py::test_graceful_server_close_ends_the_loop_cleanly 681[gw0] [ 5%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://[::1/foo/-False] 682tests/client/test_auth.py::TestCIMD::test_should_use_client_metadata_url_when_server_supports 683[gw2] [ 5%] PASSED tests/client/test_subscriptions.py::test_graceful_server_close_ends_the_loop_cleanly 684[gw1] [ 5%] PASSED tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5] 685[gw0] [ 5%] PASSED tests/client/test_auth.py::TestCIMD::test_should_use_client_metadata_url_when_server_supports 686tests/client/test_subscriptions.py::test_abrupt_stream_end_raises_subscription_lost 687tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5.0] 688tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_server_does_not_support 689[gw3] [ 5%] PASSED tests/docs_src/test_prompts.py::test_missing_required_argument_is_a_protocol_error 690tests/docs_src/test_prompts.py::test_message_list_becomes_a_multi_turn_template 691[gw0] [ 5%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_server_does_not_support 692[gw2] [ 5%] PASSED tests/client/test_subscriptions.py::test_abrupt_stream_end_raises_subscription_lost 693tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_not_provided 694tests/client/test_subscriptions.py::test_listen_on_a_legacy_connection_raises_the_typed_steer 695[gw1] [ 5%] PASSED tests/client/test_client_caching.py::test_a_negative_inbound_ttl_is_served_as_zero_and_never_cached[-5.0] 696tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5] 697[gw0] [ 5%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_not_provided 698tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_no_metadata 699[gw2] [ 5%] PASSED tests/client/test_subscriptions.py::test_listen_on_a_legacy_connection_raises_the_typed_steer 700[gw0] [ 5%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_no_metadata 701tests/client/test_subscriptions.py::test_server_rejection_raises_from_enter_not_from_iteration 702[gw3] [ 5%] PASSED tests/docs_src/test_prompts.py::test_message_list_becomes_a_multi_turn_template 703tests/docs_src/test_prompts.py::test_title_and_argument_descriptions 704[gw1] [ 5%] PASSED tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5] 705tests/client/test_auth.py::TestCIMD::test_create_client_info_from_metadata_url 706tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5.0] 707[gw0] [ 5%] PASSED tests/client/test_auth.py::TestCIMD::test_create_client_info_from_metadata_url 708tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url 709[gw2] [ 5%] PASSED tests/client/test_subscriptions.py::test_server_rejection_raises_from_enter_not_from_iteration 710[gw3] [ 5%] PASSED tests/docs_src/test_prompts.py::test_title_and_argument_descriptions 711[gw1] [ 5%] PASSED tests/client/test_client_caching.py::test_a_negative_discover_ttl_still_connects_modern_in_auto_mode[-5.0] 712[gw0] [ 5%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url 713tests/client/test_subscriptions.py::test_immediate_result_without_ack_opens_already_closed 714tests/docs_src/test_prompts.py::test_default_value_makes_the_argument_optional 715tests/client/test_client_caching.py::test_each_notification_evicts_exactly_its_entries_end_to_end 716tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error 717[gw0] [ 5%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error 718tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports 719[gw2] [ 5%] PASSED tests/client/test_subscriptions.py::test_immediate_result_without_ack_opens_already_closed 720tests/client/test_subscriptions.py::test_server_sent_cancelled_for_the_listen_id_raises_subscription_lost 721[gw3] [ 5%] PASSED tests/docs_src/test_prompts.py::test_default_value_makes_the_argument_optional 722[gw0] [ 5%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports 723tests/docs_src/test_protocol_versions.py::test_auto_lands_on_the_modern_version 724tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support 725[gw2] [ 5%] PASSED tests/client/test_subscriptions.py::test_server_sent_cancelled_for_the_listen_id_raises_subscription_lost 726tests/client/test_subscriptions.py::test_exiting_the_context_frees_the_server_slot 727[gw3] [ 5%] PASSED tests/docs_src/test_protocol_versions.py::test_auto_lands_on_the_modern_version 728[gw0] [ 5%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support 729tests/docs_src/test_protocol_versions.py::test_legacy_forces_the_initialize_handshake 730tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token 731[gw2] [ 5%] PASSED tests/client/test_subscriptions.py::test_exiting_the_context_frees_the_server_slot 732[gw0] [ 5%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token 733tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope 734tests/client/test_subscriptions.py::test_concurrent_subscriptions_demux_independently 735[gw0] [ 5%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope 736[gw3] [ 5%] PASSED tests/docs_src/test_protocol_versions.py::test_legacy_forces_the_initialize_handshake 737tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support 738tests/docs_src/test_protocol_versions.py::test_version_pin_sends_nothing_and_knows_nothing 739[gw1] [ 5%] PASSED tests/client/test_client_caching.py::test_each_notification_evicts_exactly_its_entries_end_to_end 740tests/client/test_client_caching.py::test_private_entries_never_cross_partitions_between_clients_sharing_a_store 741[gw0] [ 5%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support 742[gw2] [ 5%] PASSED tests/client/test_subscriptions.py::test_concurrent_subscriptions_demux_independently 743tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant 744tests/client/test_subscriptions.py::test_change_notifications_still_reach_message_handler 745[gw0] [ 5%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant 746[gw1] [ 5%] PASSED tests/client/test_client_caching.py::test_private_entries_never_cross_partitions_between_clients_sharing_a_store 747tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present 748[gw3] [ 5%] PASSED tests/docs_src/test_protocol_versions.py::test_version_pin_sends_nothing_and_knows_nothing 749[gw2] [ 5%] PASSED tests/client/test_subscriptions.py::test_change_notifications_still_reach_message_handler 750tests/client/test_client_caching.py::test_a_server_stamped_public_entry_does_not_cross_partitions_by_default 751[gw0] [ 5%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present 752tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected 753tests/client/test_subscriptions.py::test_enter_times_out_when_the_ack_never_arrives 754tests/docs_src/test_protocol_versions.py::test_handshake_era_version_is_not_a_valid_pin 755[gw3] [ 5%] PASSED tests/docs_src/test_protocol_versions.py::test_handshake_era_version_is_not_a_valid_pin 756tests/docs_src/test_protocol_versions.py::test_prior_discover_round_trips 757[gw0] [ 5%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected 758tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none 759[gw1] [ 5%] PASSED tests/client/test_client_caching.py::test_a_server_stamped_public_entry_does_not_cross_partitions_by_default 760tests/client/test_client_caching.py::test_share_public_serves_a_server_stamped_public_entry_across_partitions 761[gw3] [ 5%] PASSED tests/docs_src/test_protocol_versions.py::test_prior_discover_round_trips 762[gw0] [ 5%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none 763tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata 764[gw0] [ 5%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata 765tests/docs_src/test_protocol_versions.py::test_discover_result_survives_json 766tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided 767[gw0] [ 5%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided 768[gw1] [ 5%] PASSED tests/client/test_client_caching.py::test_share_public_serves_a_server_stamped_public_entry_across_partitions 769tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant 770tests/client/test_client_caching.py::test_same_partition_clients_share_read_entries_through_the_store 771[gw3] [ 5%] PASSED tests/docs_src/test_protocol_versions.py::test_discover_result_survives_json 772[gw0] [ 5%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant 773tests/docs_src/test_protocol_versions.py::test_prior_discover_is_ignored_unless_mode_is_a_pin 774tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises 775[gw0] [ 5%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises 776[gw1] [ 5%] PASSED tests/client/test_client_caching.py::test_same_partition_clients_share_read_entries_through_the_store 777tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise 778tests/client/test_client_caching.py::test_mutating_returned_results_never_corrupts_the_cached_entry 779[gw0] [ 6%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise 780tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] 781[gw1] [ 6%] PASSED tests/client/test_client_caching.py::test_mutating_returned_results_never_corrupts_the_cached_entry 782[gw3] [ 6%] PASSED tests/docs_src/test_protocol_versions.py::test_prior_discover_is_ignored_unless_mode_is_a_pin 783tests/client/test_client_caching.py::test_a_cache_hit_still_yields_to_the_event_loop 784tests/docs_src/test_real_host.py::test_the_host_sees_exactly_what_the_decorators_registered 785[gw0] [ 6%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] 786tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-and-omitted] 787[gw0] [ 6%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-and-omitted] 788[gw1] [ 6%] PASSED tests/client/test_client_caching.py::test_a_cache_hit_still_yields_to_the_event_loop 789tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-but-correct] 790tests/client/test_client_caching.py::test_a_legacy_peer_injecting_cache_hints_caches_nothing 791[gw3] [ 6%] PASSED tests/docs_src/test_real_host.py::test_the_host_sees_exactly_what_the_decorators_registered 792[gw0] [ 6%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-but-correct] 793tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[trailing-slash-issuer] 794tests/docs_src/test_real_host.py::test_a_tool_call_round_trips_the_way_a_host_drives_it 795[gw1] [ 6%] PASSED tests/client/test_client_caching.py::test_a_legacy_peer_injecting_cache_hints_caches_nothing 796[gw0] [ 6%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[trailing-slash-issuer] 797tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[advertised-but-omitted] 798tests/client/test_client_caching.py::test_a_verb_cancelled_mid_write_leaves_no_stale_arm_pair 799[gw0] [ 6%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[advertised-but-omitted] 800tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[wrong-issuer] 801[gw1] [ 6%] PASSED tests/client/test_client_caching.py::test_a_verb_cancelled_mid_write_leaves_no_stale_arm_pair 802[gw3] [ 6%] PASSED tests/docs_src/test_real_host.py::test_a_tool_call_round_trips_the_way_a_host_drives_it 803[gw0] [ 6%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[wrong-issuer] 804tests/client/test_client_caching.py::test_an_eviction_landing_mid_fetch_discards_that_fetchs_write 805tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[unexpected-when-not-advertised] 806tests/docs_src/test_real_host.py::test_the_resource_a_host_can_attach_to_context 807[gw2] [ 6%] PASSED tests/client/test_subscriptions.py::test_enter_times_out_when_the_ack_never_arrives 808tests/client/test_subscriptions.py::test_an_open_stream_outlives_the_session_read_timeout 809[gw0] [ 6%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[unexpected-when-not-advertised] 810tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[trailing-slash-not-normalized] 811[gw0] [ 6%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[trailing-slash-not-normalized] 812tests/client/test_auth.py::test_validate_authorization_response_iss_without_metadata 813[gw3] [ 6%] PASSED tests/docs_src/test_real_host.py::test_the_resource_a_host_can_attach_to_context 814[gw1] [ 6%] PASSED tests/client/test_client_caching.py::test_an_eviction_landing_mid_fetch_discards_that_fetchs_write 815tests/docs_src/test_resources.py::test_function_becomes_a_listed_resource 816[gw0] [ 6%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_without_metadata 817tests/client/test_client_caching.py::test_read_resource_bypass_neither_serves_nor_disturbs_a_warm_entry 818tests/client/test_auth.py::test_validate_metadata_issuer_accepts_match 819[gw0] [ 6%] PASSED tests/client/test_auth.py::test_validate_metadata_issuer_accepts_match 820tests/client/test_auth.py::test_validate_metadata_issuer_rejects_mismatch 821[gw3] [ 6%] PASSED tests/docs_src/test_resources.py::test_function_becomes_a_listed_resource 822tests/docs_src/test_resources.py::test_read_returns_the_return_value_as_text 823[gw0] [ 6%] PASSED tests/client/test_auth.py::test_validate_metadata_issuer_rejects_mismatch 824[gw1] [ 6%] PASSED tests/client/test_client_caching.py::test_read_resource_bypass_neither_serves_nor_disturbs_a_warm_entry 825tests/client/test_client_caching.py::test_read_resource_refresh_refetches_and_restores 826tests/client/test_auth.py::test_union_scopes[disjoint-union-order] 827[gw0] [ 6%] PASSED tests/client/test_auth.py::test_union_scopes[disjoint-union-order] 828tests/client/test_auth.py::test_union_scopes[dedup] 829[gw1] [ 6%] PASSED tests/client/test_client_caching.py::test_read_resource_refresh_refetches_and_restores 830[gw3] [ 6%] PASSED tests/docs_src/test_resources.py::test_read_returns_the_return_value_as_text 831[gw0] [ 6%] PASSED tests/client/test_auth.py::test_union_scopes[dedup] 832tests/docs_src/test_resources.py::test_template_is_listed_separately_from_resources 833tests/client/test_auth.py::test_union_scopes[no-previous] 834tests/client/test_client_caching.py::test_a_closed_client_raises_on_every_cacheable_verb_instead_of_serving_the_cache 835[gw0] [ 6%] PASSED tests/client/test_auth.py::test_union_scopes[no-previous] 836[gw3] [ 6%] PASSED tests/docs_src/test_resources.py::test_template_is_listed_separately_from_resources 837tests/client/test_auth.py::test_union_scopes[no-new] 838tests/docs_src/test_resources.py::test_reading_a_template_fills_the_placeholder 839[gw1] [ 6%] PASSED tests/client/test_client_caching.py::test_a_closed_client_raises_on_every_cacheable_verb_instead_of_serving_the_cache 840[gw0] [ 6%] PASSED tests/client/test_auth.py::test_union_scopes[no-new] 841tests/client/test_auth.py::test_union_scopes[both-empty] 842tests/client/test_client_extensions.py::test_mapping_extensions_get_the_migration_error 843[gw3] [ 6%] PASSED tests/docs_src/test_resources.py::test_reading_a_template_fills_the_placeholder 844[gw0] [ 6%] PASSED tests/client/test_auth.py::test_union_scopes[both-empty] 845tests/docs_src/test_resources.py::test_uri_params_must_match_function_params 846tests/client/test_auth.py::test_credentials_match_issuer_same_issuer 847[gw0] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_same_issuer 848tests/client/test_auth.py::test_credentials_match_issuer_different_issuer 849[gw1] [ 6%] PASSED tests/client/test_client_extensions.py::test_mapping_extensions_get_the_migration_error 850[gw0] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_different_issuer 851tests/client/test_client_extensions.py::test_one_extension_claiming_a_tag_twice_reads_as_one_owner 852[gw3] [ 6%] PASSED tests/docs_src/test_resources.py::test_uri_params_must_match_function_params 853tests/docs_src/test_resources.py::test_mime_type_is_what_you_declare 854tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] 855[gw3] [ 6%] PASSED tests/docs_src/test_resources.py::test_mime_type_is_what_you_declare 856[gw0] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] 857tests/docs_src/test_resources.py::test_str_return_is_sent_as_is 858tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] 859[gw1] [ 6%] PASSED tests/client/test_client_extensions.py::test_one_extension_claiming_a_tag_twice_reads_as_one_owner 860[gw0] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] 861tests/client/test_client_extensions.py::test_bare_extension_instance_is_rejected_with_the_fix_named 862[gw3] [ 6%] PASSED tests/docs_src/test_resources.py::test_str_return_is_sent_as_is 863tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths 864[gw0] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths 865tests/docs_src/test_resources.py::test_dict_return_becomes_json_text 866tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone 867[gw1] [ 6%] PASSED tests/client/test_client_extensions.py::test_bare_extension_instance_is_rejected_with_the_fix_named 868tests/client/test_client_extensions.py::test_invalid_per_instance_identifier_raises_the_validators_error 869[gw0] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone 870tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable 871[gw0] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable 872[gw3] [ 6%] PASSED tests/docs_src/test_resources.py::test_dict_return_becomes_json_text 873tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable 874tests/docs_src/test_resources.py::test_bytes_return_becomes_a_blob 875[gw1] [ 6%] PASSED tests/client/test_client_extensions.py::test_invalid_per_instance_identifier_raises_the_validators_error 876tests/client/test_client_extensions.py::test_duplicate_extension_identifiers_are_rejected_naming_the_identifier 877[gw0] [ 6%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable 878tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request 879[gw0] [ 6%] PASSED tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request 880[gw3] [ 6%] PASSED tests/docs_src/test_resources.py::test_bytes_return_becomes_a_blob 881tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body 882[gw1] [ 6%] PASSED tests/client/test_client_extensions.py::test_duplicate_extension_identifiers_are_rejected_naming_the_identifier 883tests/docs_src/test_run.py::test_the_run_call_is_guarded_so_importing_does_not_start_a_server 884tests/client/test_client_extensions.py::test_conflicting_claims_across_extensions_name_both_owners 885[gw0] [ 6%] PASSED tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body 886tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted 887[gw1] [ 6%] PASSED tests/client/test_client_extensions.py::test_conflicting_claims_across_extensions_name_both_owners 888[gw0] [ 6%] PASSED tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted 889tests/client/test_client_extensions.py::test_conflicting_notification_bindings_name_both_owners 890tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned 891[gw3] [ 6%] PASSED tests/docs_src/test_run.py::test_the_run_call_is_guarded_so_importing_does_not_start_a_server 892tests/docs_src/test_run.py::test_the_transport_never_changes_what_the_server_is 893[gw0] [ 6%] PASSED tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned 894tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed 895[gw1] [ 6%] PASSED tests/client/test_client_extensions.py::test_conflicting_notification_bindings_name_both_owners 896tests/client/test_client_extensions.py::test_declarations_are_read_exactly_once_at_construction 897[gw0] [ 7%] PASSED tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed 898[gw3] [ 7%] PASSED tests/docs_src/test_run.py::test_the_transport_never_changes_what_the_server_is 899tests/docs_src/test_run.py::test_transport_options_are_not_constructor_options 900tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused 901[gw3] [ 7%] PASSED tests/docs_src/test_run.py::test_transport_options_are_not_constructor_options 902tests/docs_src/test_run.py::test_settings_are_constructor_arguments_and_land_on_settings 903[gw3] [ 7%] PASSED tests/docs_src/test_run.py::test_settings_are_constructor_arguments_and_land_on_settings 904tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[legacy] 905[gw1] [ 7%] PASSED tests/client/test_client_extensions.py::test_declarations_are_read_exactly_once_at_construction 906tests/client/test_client_extensions.py::test_settings_dict_is_held_by_reference_not_copied 907[gw3] [ 7%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[legacy] 908[gw1] [ 7%] PASSED tests/client/test_client_extensions.py::test_settings_dict_is_held_by_reference_not_copied 909[gw0] [ 7%] PASSED tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused 910tests/client/test_client_extensions.py::test_no_extensions_keeps_tools_call_parsing_byte_identical[none] 911tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[auto] 912tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] 913[gw0] [ 7%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] 914tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] 915[gw1] [ 7%] PASSED tests/client/test_client_extensions.py::test_no_extensions_keeps_tools_call_parsing_byte_identical[none] 916[gw0] [ 7%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] 917[gw3] [ 7%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_sampling_dependency_receives_the_clients_completion[auto] 918tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] 919tests/client/test_client_extensions.py::test_no_extensions_keeps_tools_call_parsing_byte_identical[empty] 920tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[legacy] 921[gw3] [ 7%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[legacy] 922[gw1] [ 7%] PASSED tests/client/test_client_extensions.py::test_no_extensions_keeps_tools_call_parsing_byte_identical[empty] 923tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[auto] 924tests/client/test_client_extensions.py::test_claimed_result_resolves_transparently_to_the_resolvers_result 925[gw3] [ 7%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[auto] 926[gw1] [ 7%] PASSED tests/client/test_client_extensions.py::test_claimed_result_resolves_transparently_to_the_resolvers_result 927tests/client/test_client_extensions.py::test_claimed_shape_routes_to_its_owning_extensions_resolver 928tests/docs_src/test_sampling_and_roots.py::test_an_undeclared_capability_fails_before_a_request_is_sent 929[gw0] [ 7%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] 930tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] 931[gw3] [ 7%] PASSED tests/docs_src/test_sampling_and_roots.py::test_an_undeclared_capability_fails_before_a_request_is_sent 932tests/docs_src/test_session_groups.py::test_both_servers_call_their_tool_search 933[gw1] [ 7%] PASSED tests/client/test_client_extensions.py::test_claimed_shape_routes_to_its_owning_extensions_resolver 934tests/client/test_client_extensions.py::test_resolver_product_gets_the_direct_paths_output_schema_revalidation 935[gw3] [ 7%] PASSED tests/docs_src/test_session_groups.py::test_both_servers_call_their_tool_search 936tests/docs_src/test_session_groups.py::test_a_connected_server_is_aggregated_into_the_group 937[gw3] [ 7%] PASSED tests/docs_src/test_session_groups.py::test_a_connected_server_is_aggregated_into_the_group 938[gw1] [ 7%] PASSED tests/client/test_client_extensions.py::test_resolver_product_gets_the_direct_paths_output_schema_revalidation 939tests/docs_src/test_session_groups.py::test_colliding_names_are_rejected 940tests/client/test_client_extensions.py::test_resolver_error_result_is_returned_not_raised 941[gw0] [ 7%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] 942[gw3] [ 7%] PASSED tests/docs_src/test_session_groups.py::test_colliding_names_are_rejected 943tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] 944tests/docs_src/test_session_groups.py::test_component_name_hook_prefixes_every_name 945[gw1] [ 7%] PASSED tests/client/test_client_extensions.py::test_resolver_error_result_is_returned_not_raised 946tests/client/test_client_extensions.py::test_resolver_receives_the_calls_claim_context 947[gw3] [ 7%] PASSED tests/docs_src/test_session_groups.py::test_component_name_hook_prefixes_every_name 948tests/docs_src/test_session_groups.py::test_the_hook_is_a_plain_function_of_name_and_server_info 949[gw2] [ 7%] PASSED tests/client/test_subscriptions.py::test_an_open_stream_outlives_the_session_read_timeout 950tests/client/test_subscriptions.py::test_a_duplicate_ack_does_not_overwrite_the_honored_filter 951[gw3] [ 7%] PASSED tests/docs_src/test_session_groups.py::test_the_hook_is_a_plain_function_of_name_and_server_info 952tests/docs_src/test_session_groups.py::test_the_key_is_prefixed_but_the_wire_name_is_not 953[gw1] [ 7%] PASSED tests/client/test_client_extensions.py::test_resolver_receives_the_calls_claim_context 954tests/client/test_client_extensions.py::test_resolver_exception_propagates_untouched 955[gw2] [ 7%] PASSED tests/client/test_subscriptions.py::test_a_duplicate_ack_does_not_overwrite_the_honored_filter 956[gw3] [ 7%] PASSED tests/docs_src/test_session_groups.py::test_the_key_is_prefixed_but_the_wire_name_is_not 957tests/client/test_subscriptions.py::test_a_non_event_frame_with_the_subscription_id_is_teed_not_delivered 958tests/docs_src/test_session_groups.py::test_call_tool_routes_to_the_owning_server 959[gw2] [ 7%] PASSED tests/client/test_subscriptions.py::test_a_non_event_frame_with_the_subscription_id_is_teed_not_delivered 960tests/client/test_subscriptions.py::test_session_teardown_unblocks_a_sibling_consumer_with_subscription_lost 961[gw0] [ 7%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] 962[gw1] [ 7%] PASSED tests/client/test_client_extensions.py::test_resolver_exception_propagates_untouched 963tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers 964tests/client/test_client_extensions.py::test_unclaimed_result_flows_through_unchanged_with_extensions_present 965[gw2] [ 7%] PASSED tests/client/test_subscriptions.py::test_session_teardown_unblocks_a_sibling_consumer_with_subscription_lost 966tests/client/test_subscriptions.py::test_server_cancel_before_the_ack_raises_subscription_lost_from_enter 967[gw3] [ 7%] PASSED tests/docs_src/test_session_groups.py::test_call_tool_routes_to_the_owning_server 968tests/docs_src/test_session_groups.py::test_disconnect_removes_every_component_of_that_server 969[gw0] [ 7%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers 970tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling 971[gw0] [ 7%] PASSED tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling 972[gw2] [ 7%] PASSED tests/client/test_subscriptions.py::test_server_cancel_before_the_ack_raises_subscription_lost_from_enter 973tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] 974[gw3] [ 7%] PASSED tests/docs_src/test_session_groups.py::test_disconnect_removes_every_component_of_that_server 975tests/docs_src/test_shape.py::test_private_mcp_import_detector 976tests/client/test_subscriptions.py::test_listen_on_an_exited_session_raises_and_leaks_no_route 977[gw1] [ 7%] PASSED tests/client/test_client_extensions.py::test_unclaimed_result_flows_through_unchanged_with_extensions_present 978[gw0] [ 7%] PASSED tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] 979tests/client/test_client_extensions.py::test_input_required_then_plain_result_keeps_the_auto_loop_working 980tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-metadata-without-registration-endpoint] 981[gw2] [ 7%] PASSED tests/client/test_subscriptions.py::test_listen_on_an_exited_session_raises_and_leaks_no_route 982[gw3] [ 7%] PASSED tests/docs_src/test_shape.py::test_private_mcp_import_detector 983tests/docs_src/test_shape.py::test_retired_name_detector 984tests/client/test_subscriptions.py::test_listen_on_a_never_entered_session_raises_runtime_error 985[gw3] [ 7%] PASSED tests/docs_src/test_shape.py::test_retired_name_detector 986tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001.py] 987[gw2] [ 7%] PASSED tests/client/test_subscriptions.py::test_listen_on_a_never_entered_session_raises_runtime_error 988[gw0] [ 7%] PASSED tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-metadata-without-registration-endpoint] 989tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer 990tests/client/test_subscriptions.py::test_a_retained_handle_after_exit_does_not_serve_stale_events 991[gw3] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001.py] 992tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001_client.py] 993[gw3] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001_client.py] 994[gw0] [ 7%] PASSED tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer 995tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial002.py] 996tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] 997[gw3] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial002.py] 998[gw1] [ 7%] PASSED tests/client/test_client_extensions.py::test_input_required_then_plain_result_keeps_the_auto_loop_working 999tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial003.py] 1000tests/client/test_client_extensions.py::test_input_required_then_claimed_result_on_retry_resolves_transparently 1001[gw0] [ 7%] PASSED tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] 1002tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] 1003[gw3] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial003.py] 1004tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial001.py] 1005[gw0] [ 7%] PASSED tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] 1006[gw3] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial001.py] 1007tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] 1008tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial002.py] 1009[gw0] [ 7%] PASSED tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] 1010[gw3] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial002.py] 1011tests/client/test_caching.py::test_swapped_params_key_and_partition_values_are_distinct_keys[InMemoryResponseCacheStore] 1012tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial003.py] 1013[gw1] [ 7%] PASSED tests/client/test_client_extensions.py::test_input_required_then_claimed_result_on_retry_resolves_transparently 1014tests/client/test_client_extensions.py::test_notification_bindings_fold_into_the_session 1015[gw0] [ 7%] PASSED tests/client/test_caching.py::test_swapped_params_key_and_partition_values_are_distinct_keys[InMemoryResponseCacheStore] 1016[gw3] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial003.py] 1017tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] 1018tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial004.py] 1019[gw0] [ 8%] PASSED tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] 1020tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] 1021[gw3] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial004.py] 1022tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial005.py] 1023[gw0] [ 8%] PASSED tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] 1024tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] 1025[gw3] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial005.py] 1026tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial006.py] 1027[gw0] [ 8%] PASSED tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] 1028tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] 1029[gw3] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial006.py] 1030tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial001.py] 1031[gw0] [ 8%] PASSED tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] 1032tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] 1033[gw3] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial001.py] 1034tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial002.py] 1035[gw0] [ 8%] PASSED tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] 1036[gw3] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial002.py] 1037tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config 1038tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial001.py] 1039[gw0] [ 8%] PASSED tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config 1040tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction 1041[gw3] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial001.py] 1042tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial002.py] 1043[gw0] [ 8%] PASSED tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction 1044tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs 1045[gw3] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial002.py] 1046tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial003.py] 1047[gw0] [ 8%] PASSED tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs 1048[gw3] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial003.py] 1049tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction 1050tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial001.py] 1051[gw0] [ 8%] PASSED tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction 1052[gw3] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial001.py] 1053[gw1] [ 8%] PASSED tests/client/test_client_extensions.py::test_notification_bindings_fold_into_the_session 1054tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction 1055tests/client/test_extension.py::test_claim_with_literal_discriminated_model_constructs 1056tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial002.py] 1057[gw0] [ 8%] PASSED tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction 1058[gw3] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/cancellation/tutorial002.py] 1059tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one 1060tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001.py] 1061[gw1] [ 8%] PASSED tests/client/test_extension.py::test_claim_with_literal_discriminated_model_constructs 1062[gw3] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001.py] 1063tests/client/test_extension.py::test_claim_accepts_modern_protocol_versions 1064[gw0] [ 8%] PASSED tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one 1065tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001_client.py] 1066tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency 1067[gw1] [ 8%] PASSED tests/client/test_extension.py::test_claim_accepts_modern_protocol_versions 1068[gw0] [ 8%] PASSED tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency 1069[gw3] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001_client.py] 1070tests/client/test_extension.py::test_claim_rejects_core_result_type_vocabulary 1071tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial002.py] 1072tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting 1073[gw1] [ 8%] PASSED tests/client/test_extension.py::test_claim_rejects_core_result_type_vocabulary 1074tests/client/test_extension.py::test_claim_rejects_model_subclassing_core_result_types[_ClaimedCallToolResult] 1075[gw0] [ 8%] PASSED tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting 1076tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap 1077[gw3] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial002.py] 1078tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial003.py] 1079[gw0] [ 8%] PASSED tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap 1080[gw1] [ 8%] PASSED tests/client/test_extension.py::test_claim_rejects_model_subclassing_core_result_types[_ClaimedCallToolResult] 1081[gw3] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial003.py] 1082tests/client/test_extension.py::test_claim_rejects_model_subclassing_core_result_types[_ClaimedInputRequiredResult] 1083tests/client/test_caching.py::test_a_zero_cap_disables_eviction 1084tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial004.py] 1085[gw0] [ 8%] PASSED tests/client/test_caching.py::test_a_zero_cap_disables_eviction 1086tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot 1087[gw1] [ 8%] PASSED tests/client/test_extension.py::test_claim_rejects_model_subclassing_core_result_types[_ClaimedInputRequiredResult] 1088tests/client/test_extension.py::test_claim_rejects_model_without_result_type_field 1089[gw3] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial004.py] 1090[gw0] [ 8%] PASSED tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot 1091tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial005.py] 1092[gw1] [ 8%] PASSED tests/client/test_extension.py::test_claim_rejects_model_without_result_type_field 1093tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction 1094tests/client/test_extension.py::test_claim_rejects_plain_str_result_type_field 1095[gw0] [ 8%] PASSED tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction 1096[gw3] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial005.py] 1097tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] 1098tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial006.py] 1099[gw1] [ 8%] PASSED tests/client/test_extension.py::test_claim_rejects_plain_str_result_type_field 1100tests/client/test_extension.py::test_claim_rejects_mismatched_result_type_literal 1101[gw0] [ 8%] PASSED tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] 1102[gw3] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial006.py] 1103[gw1] [ 8%] PASSED tests/client/test_extension.py::test_claim_rejects_mismatched_result_type_literal 1104tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[pre-negotiation] 1105tests/client/test_extension.py::test_claim_rejects_model_not_subclassing_result 1106tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial007.py] 1107[gw0] [ 8%] PASSED tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[pre-negotiation] 1108tests/client/test_caching.py::test_a_legacy_session_with_a_default_ttl_caches_on_the_private_arm_only 1109[gw3] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial007.py] 1110[gw1] [ 8%] PASSED tests/client/test_extension.py::test_claim_rejects_model_not_subclassing_result 1111tests/client/test_extension.py::test_claim_rejects_model_aliasing_core_surface_fields 1112tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial001.py] 1113[gw1] [ 8%] PASSED tests/client/test_extension.py::test_claim_rejects_model_aliasing_core_surface_fields 1114[gw3] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial001.py] 1115[gw0] [ 8%] PASSED tests/client/test_caching.py::test_a_legacy_session_with_a_default_ttl_caches_on_the_private_arm_only 1116tests/client/test_caching.py::test_entries_never_cross_negotiated_eras_on_a_shared_store 1117tests/client/test_extension.py::test_wire_keys_for_a_bare_field_is_just_its_name 1118tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial002.py] 1119[gw3] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial002.py] 1120[gw0] [ 8%] PASSED tests/client/test_caching.py::test_entries_never_cross_negotiated_eras_on_a_shared_store 1121[gw1] [ 8%] PASSED tests/client/test_extension.py::test_wire_keys_for_a_bare_field_is_just_its_name 1122tests/client/test_extension.py::test_claim_rejects_reserved_aliases_in_every_alias_form 1123tests/client/test_caching.py::test_coordinators_negotiating_the_same_era_share_entries_through_the_store 1124tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial003.py] 1125[gw2] [ 8%] PASSED tests/client/test_subscriptions.py::test_a_retained_handle_after_exit_does_not_serve_stale_events 1126[gw1] [ 8%] PASSED tests/client/test_extension.py::test_claim_rejects_reserved_aliases_in_every_alias_form 1127tests/client/test_subscriptions.py::test_a_stray_ack_outside_the_driver_namespace_still_reaches_message_handler 1128[gw3] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial003.py] 1129tests/client/test_extension.py::test_claim_rejects_method_outside_the_closed_verb_set 1130[gw0] [ 8%] PASSED tests/client/test_caching.py::test_coordinators_negotiating_the_same_era_share_entries_through_the_store 1131tests/client/test_caching.py::test_an_explicit_zero_ttl_is_not_overridden_by_the_default_ttl 1132tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial004.py] 1133[gw1] [ 8%] PASSED tests/client/test_extension.py::test_claim_rejects_method_outside_the_closed_verb_set 1134tests/client/test_extension.py::test_claim_rejects_empty_protocol_versions 1135[gw0] [ 9%] PASSED tests/client/test_caching.py::test_an_explicit_zero_ttl_is_not_overridden_by_the_default_ttl 1136[gw3] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial004.py] 1137tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial001.py] 1138tests/client/test_caching.py::test_a_hint_absent_modern_result_uses_the_default_ttl_privately 1139[gw1] [ 9%] PASSED tests/client/test_extension.py::test_claim_rejects_empty_protocol_versions 1140[gw2] [ 9%] PASSED tests/client/test_subscriptions.py::test_a_stray_ack_outside_the_driver_namespace_still_reaches_message_handler 1141tests/client/test_subscriptions.py::test_a_bare_string_for_resource_subscriptions_is_rejected 1142[gw3] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial001.py] 1143tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial002.py] 1144tests/client/test_extension.py::test_claim_rejects_non_modern_protocol_versions 1145[gw0] [ 9%] PASSED tests/client/test_caching.py::test_a_hint_absent_modern_result_uses_the_default_ttl_privately 1146tests/client/test_caching.py::test_a_ttl_above_24_hours_is_clamped_to_the_cap 1147[gw2] [ 9%] PASSED tests/client/test_subscriptions.py::test_a_bare_string_for_resource_subscriptions_is_rejected 1148[gw3] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial002.py] 1149[gw0] [ 9%] PASSED tests/client/test_caching.py::test_a_ttl_above_24_hours_is_clamped_to_the_cap 1150tests/client/test_subscriptions.py::test_the_route_admits_only_honored_events_and_only_while_live 1151[gw1] [ 9%] PASSED tests/client/test_extension.py::test_claim_rejects_non_modern_protocol_versions 1152tests/client/test_extension.py::test_result_claim_is_frozen 1153tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial003.py] 1154tests/client/test_caching.py::test_a_public_result_lands_on_the_public_arm_and_clears_the_private_arm 1155[gw3] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial003.py] 1156tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial004.py] 1157[gw1] [ 9%] PASSED tests/client/test_extension.py::test_result_claim_is_frozen 1158tests/client/test_extension.py::test_notification_binding_constructs 1159[gw1] [ 9%] PASSED tests/client/test_extension.py::test_notification_binding_constructs 1160[gw2] [ 9%] PASSED tests/client/test_subscriptions.py::test_the_route_admits_only_honored_events_and_only_while_live 1161tests/client/test_subscriptions.py::test_a_peer_flooding_distinct_uris_costs_the_subscription_not_client_memory 1162[gw0] [ 9%] PASSED tests/client/test_caching.py::test_a_public_result_lands_on_the_public_arm_and_clears_the_private_arm 1163tests/client/test_caching.py::test_arm_key_layout_is_pinned_for_shared_store_compatibility 1164tests/client/test_extension.py::test_notification_binding_accepts_core_known_method 1165[gw3] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial004.py] 1166tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial005.py] 1167[gw0] [ 9%] PASSED tests/client/test_caching.py::test_arm_key_layout_is_pinned_for_shared_store_compatibility 1168[gw1] [ 9%] PASSED tests/client/test_extension.py::test_notification_binding_accepts_core_known_method 1169[gw2] [ 9%] PASSED tests/client/test_subscriptions.py::test_a_peer_flooding_distinct_uris_costs_the_subscription_not_client_memory 1170tests/client/test_subscriptions.py::test_a_cancelled_on_event_barrier_does_not_lose_the_event 1171[gw3] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial005.py] 1172tests/client/test_caching.py::test_public_entries_do_not_cross_partitions_by_default 1173tests/client/test_extension.py::test_notification_binding_is_frozen 1174[gw1] [ 9%] PASSED tests/client/test_extension.py::test_notification_binding_is_frozen 1175[gw0] [ 9%] PASSED tests/client/test_caching.py::test_public_entries_do_not_cross_partitions_by_default 1176tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial001.py] 1177[gw3] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial001.py] 1178tests/client/test_extension.py::test_extension_defaults_advertise_nothing 1179tests/client/test_caching.py::test_share_public_serves_public_entries_across_partitions_but_never_private_ones 1180tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial002.py] 1181[gw1] [ 9%] PASSED tests/client/test_extension.py::test_extension_defaults_advertise_nothing 1182tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[io.modelcontextprotocol/ui] 1183[gw2] [ 9%] PASSED tests/client/test_subscriptions.py::test_a_cancelled_on_event_barrier_does_not_lose_the_event 1184tests/client/test_subscriptions.py::test_events_outside_the_honored_filter_are_never_delivered 1185[gw0] [ 9%] PASSED tests/client/test_caching.py::test_share_public_serves_public_entries_across_partitions_but_never_private_ones 1186tests/client/test_caching.py::test_a_private_scoped_entry_under_the_public_arm_is_not_served 1187[gw3] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial002.py] 1188tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial003.py] 1189[gw1] [ 9%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[io.modelcontextprotocol/ui] 1190tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/my_ext] 1191[gw0] [ 9%] PASSED tests/client/test_caching.py::test_a_private_scoped_entry_under_the_public_arm_is_not_served 1192[gw3] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial003.py] 1193tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one 1194[gw2] [ 9%] PASSED tests/client/test_subscriptions.py::test_events_outside_the_honored_filter_are_never_delivered 1195tests/client/test_subscriptions.py::test_the_on_event_barrier_completes_before_each_event_is_returned 1196[gw1] [ 9%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/my_ext] 1197tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial001.py] 1198[gw3] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial001.py] 1199tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.x-y.z2/n.a-b_c] 1200[gw0] [ 9%] PASSED tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one 1201tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh 1202tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial002.py] 1203[gw1] [ 9%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.x-y.z2/n.a-b_c] 1204[gw3] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial002.py] 1205tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[example/x] 1206[gw0] [ 9%] PASSED tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh 1207[gw2] [ 9%] PASSED tests/client/test_subscriptions.py::test_the_on_event_barrier_completes_before_each_event_is_returned 1208tests/client/test_subscriptions.py::test_client_listen_installs_the_cache_eviction_barrier_exactly_when_a_cache_exists 1209[gw1] [ 9%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[example/x] 1210tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial003.py] 1211tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own 1212tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[a/b] 1213[gw3] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial003.py] 1214[gw0] [ 9%] PASSED tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own 1215tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial001.py] 1216tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated 1217[gw1] [ 9%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[a/b] 1218[gw3] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial001.py] 1219tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/9start] 1220[gw0] [ 9%] PASSED tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated 1221tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial002.py] 1222[gw2] [ 9%] PASSED tests/client/test_subscriptions.py::test_client_listen_installs_the_cache_eviction_barrier_exactly_when_a_cache_exists 1223tests/client/test_subscriptions.py::test_the_cache_eviction_barrier_maps_events_and_contains_store_faults 1224tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction 1225[gw0] [ 9%] PASSED tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction 1226[gw1] [ 9%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/9start] 1227tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[noprefix] 1228[gw3] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial002.py] 1229tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial003.py] 1230[gw3] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial003.py] 1231tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms 1232[gw0] [ 9%] PASSED tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms 1233tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial004.py] 1234[gw1] [ 9%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[noprefix] 1235tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] 1236[gw1] [ 9%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] 1237tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms 1238[gw3] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial004.py] 1239tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] 1240[gw0] [ 9%] PASSED tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms 1241tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial001.py] 1242[gw1] [ 9%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] 1243tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1244tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] 1245[gw3] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial001.py] 1246[gw1] [ 9%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] 1247tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] 1248tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial002.py] 1249[gw3] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial002.py] 1250tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial003.py] 1251[gw1] [ 9%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] 1252tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] 1253[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial003.py] 1254[gw1] [ 10%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] 1255tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial004.py] 1256tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] 1257[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial004.py] 1258[gw1] [ 10%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] 1259tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] 1260[gw2] [ 10%] PASSED tests/client/test_subscriptions.py::test_the_cache_eviction_barrier_maps_events_and_contains_store_faults 1261[gw1] [ 10%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] 1262tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial001.py] 1263[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial001.py] 1264tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] 1265tests/client/test_subscriptions.py::test_a_raw_request_id_collision_fails_the_subscription_not_the_session 1266tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial002.py] 1267[gw1] [ 10%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] 1268tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] 1269[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial002.py] 1270[gw1] [ 10%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] 1271tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial003.py] 1272tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] 1273[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial003.py] 1274[gw1] [ 10%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] 1275tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial004.py] 1276tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] 1277[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial004.py] 1278[gw1] [ 10%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] 1279tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial001.py] 1280tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] 1281[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial001.py] 1282[gw1] [ 10%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] 1283tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial002.py] 1284tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] 1285[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial002.py] 1286[gw1] [ 10%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] 1287tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition 1288[gw0] [ 10%] PASSED tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1289tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003.py] 1290tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1291[gw1] [ 10%] PASSED tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition 1292tests/client/test_extension.py::test_advertise_serves_captured_settings 1293[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003.py] 1294tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003_client.py] 1295[gw1] [ 10%] PASSED tests/client/test_extension.py::test_advertise_serves_captured_settings 1296[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003_client.py] 1297tests/client/test_extension.py::test_advertise_defaults_to_empty_settings 1298tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004.py] 1299[gw1] [ 10%] PASSED tests/client/test_extension.py::test_advertise_defaults_to_empty_settings 1300tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[noprefix] 1301[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004.py] 1302tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004_client.py] 1303[gw1] [ 10%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[noprefix] 1304tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[foo/] 1305[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004_client.py] 1306tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial005.py] 1307[gw1] [ 10%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[foo/] 1308[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial005.py] 1309tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006.py] 1310tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[] 1311[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006.py] 1312[gw1] [ 10%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[] 1313tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006_client.py] 1314tests/client/test_input_required.py::test_single_round_dispatches_then_retries_to_terminal_result 1315[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006_client.py] 1316tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007.py] 1317[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007.py] 1318tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007_client.py] 1319[gw1] [ 10%] PASSED tests/client/test_input_required.py::test_single_round_dispatches_then_retries_to_terminal_result 1320tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required 1321[gw1] [ 10%] PASSED tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required 1322tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap 1323[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007_client.py] 1324tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001.py] 1325[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001.py] 1326tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001_client.py] 1327[gw1] [ 10%] PASSED tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap 1328tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error 1329[gw0] [ 10%] PASSED tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1330tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1331[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001_client.py] 1332[gw1] [ 10%] PASSED tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error 1333tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial001.py] 1334tests/client/test_input_required.py::test_request_state_passes_through_byte_identical 1335[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial001.py] 1336tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial002.py] 1337[gw1] [ 10%] PASSED tests/client/test_input_required.py::test_request_state_passes_through_byte_identical 1338tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] 1339[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial002.py] 1340tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial003.py] 1341[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial003.py] 1342tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial004.py] 1343[gw1] [ 10%] PASSED tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] 1344tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] 1345[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial004.py] 1346tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial001.py] 1347[gw1] [ 10%] PASSED tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] 1348[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial001.py] 1349tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently 1350tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial002.py] 1351[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial002.py] 1352[gw1] [ 10%] PASSED tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently 1353tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial003.py] 1354tests/client/test_input_required.py::test_default_max_rounds_constant 1355[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/header_parameters/tutorial003.py] 1356[gw1] [ 10%] PASSED tests/client/test_input_required.py::test_default_max_rounds_constant 1357tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial001.py] 1358tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] 1359[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial001.py] 1360tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial002.py] 1361[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial002.py] 1362tests/docs_src/test_shape.py::test_example_imports[docs_src/index/tutorial001.py] 1363[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/index/tutorial001.py] 1364tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001.py] 1365[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001.py] 1366tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001_client.py] 1367[gw3] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001_client.py] 1368[gw1] [ 10%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] 1369tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial002.py] 1370tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] 1371[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial002.py] 1372tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial003.py] 1373[gw2] [ 11%] PASSED tests/client/test_subscriptions.py::test_a_raw_request_id_collision_fails_the_subscription_not_the_session 1374[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial003.py] 1375tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial001.py] 1376tests/client/test_transport_stream_cleanup.py::test_sse_client_closes_all_streams_on_connection_error 1377[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial001.py] 1378tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial002.py] 1379[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial002.py] 1380tests/docs_src/test_shape.py::test_example_imports[docs_src/logging/tutorial001.py] 1381[gw1] [ 11%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] 1382tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] 1383[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/logging/tutorial001.py] 1384tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial001.py] 1385[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial001.py] 1386tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial002.py] 1387[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial002.py] 1388tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial003.py] 1389[gw0] [ 11%] PASSED tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1390[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial003.py] 1391tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss 1392tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial004.py] 1393[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial004.py] 1394tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial005.py] 1395[gw1] [ 11%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] 1396tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] 1397[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial005.py] 1398tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial006.py] 1399[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial006.py] 1400tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial007.py] 1401[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial007.py] 1402tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial001.py] 1403[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial001.py] 1404tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial002.py] 1405[gw1] [ 11%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] 1406tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation 1407[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial002.py] 1408tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial003.py] 1409[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial003.py] 1410tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial004.py] 1411[gw0] [ 11%] PASSED tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss 1412tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] 1413[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial004.py] 1414tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial005.py] 1415[gw1] [ 11%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation 1416[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial005.py] 1417tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server 1418tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial001.py] 1419[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial001.py] 1420tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial002.py] 1421[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial002.py] 1422[gw1] [ 11%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server 1423tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial001.py] 1424tests/client/test_list_roots_callback.py::test_list_roots_callback 1425[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial001.py] 1426tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial002.py] 1427[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial002.py] 1428tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial003.py] 1429[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial003.py] 1430tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial004.py] 1431[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial004.py] 1432tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial005.py] 1433[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial005.py] 1434[gw0] [ 11%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] 1435tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial001.py] 1436[gw1] [ 11%] PASSED tests/client/test_list_roots_callback.py::test_list_roots_callback 1437tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] 1438[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial001.py] 1439tests/client/test_logging_callback.py::test_logging_callback 1440tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial002.py] 1441[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial002.py] 1442tests/docs_src/test_shape.py::test_example_imports[docs_src/opentelemetry/tutorial001.py] 1443[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/opentelemetry/tutorial001.py] 1444tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial001.py] 1445[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial001.py] 1446tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial002.py] 1447[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial002.py] 1448tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial001.py] 1449[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial001.py] 1450tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial002.py] 1451[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial002.py] 1452tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial001.py] 1453[gw1] [ 11%] PASSED tests/client/test_logging_callback.py::test_logging_callback 1454tests/client/test_notification_response.py::test_non_compliant_notification_response 1455[gw0] [ 11%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] 1456[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial001.py] 1457tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial002.py] 1458tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write 1459[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial002.py] 1460tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial003.py] 1461[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial003.py] 1462tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial004.py] 1463[gw1] [ 11%] PASSED tests/client/test_notification_response.py::test_non_compliant_notification_response 1464tests/client/test_notification_response.py::test_unexpected_content_type_sends_jsonrpc_error 1465[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial004.py] 1466tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] 1467[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] 1468tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] 1469[gw0] [ 11%] PASSED tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write 1470tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss 1471[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] 1472tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] 1473[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] 1474tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] 1475[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] 1476tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] 1477[gw1] [ 11%] PASSED tests/client/test_notification_response.py::test_unexpected_content_type_sends_jsonrpc_error 1478tests/client/test_notification_response.py::test_http_error_status_sends_jsonrpc_error 1479[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] 1480tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] 1481[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] 1482[gw1] [ 11%] PASSED tests/client/test_notification_response.py::test_http_error_status_sends_jsonrpc_error 1483tests/docs_src/test_shape.py::test_example_imports[docs_src/real_host/tutorial001.py] 1484tests/client/test_notification_response.py::test_http_error_on_notification_does_not_hang 1485[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/real_host/tutorial001.py] 1486tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial001.py] 1487[gw3] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial001.py] 1488tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial002.py] 1489[gw1] [ 12%] PASSED tests/client/test_notification_response.py::test_http_error_on_notification_does_not_hang 1490[gw0] [ 12%] PASSED tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss 1491tests/client/test_notification_response.py::test_invalid_json_response_sends_jsonrpc_error 1492tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise 1493[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial002.py] 1494tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial003.py] 1495[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial003.py] 1496tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial001.py] 1497[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial001.py] 1498tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial002.py] 1499[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial002.py] 1500tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial003.py] 1501[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial003.py] 1502tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial001.py] 1503[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial001.py] 1504tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial002.py] 1505[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial002.py] 1506tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial001.py] 1507[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial001.py] 1508tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial002.py] 1509[gw0] [ 12%] PASSED tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise 1510[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial002.py] 1511tests/client/test_caching.py::test_a_failed_set_purges_the_pre_existing_own_arm_entry 1512tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial003.py] 1513[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial003.py] 1514tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial004.py] 1515[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial004.py] 1516tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial001.py] 1517[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial001.py] 1518tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial002.py] 1519[gw1] [ 12%] PASSED tests/client/test_notification_response.py::test_invalid_json_response_sends_jsonrpc_error 1520[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial002.py] 1521tests/client/test_notification_response.py::test_client_surfaces_jsonrpc_error_from_non_2xx_body_with_correlated_id 1522tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial003.py] 1523[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial003.py] 1524tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial004.py] 1525[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial004.py] 1526tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial005.py] 1527[gw1] [ 12%] PASSED tests/client/test_notification_response.py::test_client_surfaces_jsonrpc_error_from_non_2xx_body_with_correlated_id 1528tests/client/test_notification_response.py::test_client_falls_back_to_generic_error_when_non_2xx_body_is_a_jsonrpc_result 1529[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial005.py] 1530tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial006.py] 1531[gw0] [ 12%] PASSED tests/client/test_caching.py::test_a_failed_set_purges_the_pre_existing_own_arm_entry 1532tests/client/test_caching.py::test_eviction_with_a_raising_delete_still_bumps_the_generation 1533[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial006.py] 1534tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial007.py] 1535[gw1] [ 12%] PASSED tests/client/test_notification_response.py::test_client_falls_back_to_generic_error_when_non_2xx_body_is_a_jsonrpc_result 1536tests/client/test_notification_response.py::test_client_falls_back_to_session_terminated_when_404_body_is_malformed_json 1537[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial007.py] 1538tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial008.py] 1539[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial008.py] 1540tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] 1541[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] 1542[gw1] [ 12%] PASSED tests/client/test_notification_response.py::test_client_falls_back_to_session_terminated_when_404_body_is_malformed_json 1543tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] 1544tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_basemodel 1545[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] 1546tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] 1547[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] 1548tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] 1549[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] 1550tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] 1551[gw1] [ 12%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_basemodel 1552tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_primitive 1553[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] 1554tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] 1555[gw0] [ 12%] PASSED tests/client/test_caching.py::test_eviction_with_a_raising_delete_still_bumps_the_generation 1556[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] 1557tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] 1558tests/client/test_caching.py::test_store_failures_warn_once_per_burst 1559[gw2] [ 12%] PASSED tests/client/test_transport_stream_cleanup.py::test_sse_client_closes_all_streams_on_connection_error 1560tests/client/test_transport_stream_cleanup.py::test_sse_client_closes_all_streams_on_http_error 1561[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] 1562tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] 1563[gw1] [ 12%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_primitive 1564tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_dict_typed 1565[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] 1566tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] 1567[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] 1568[gw1] [ 12%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_dict_typed 1569tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial007.py] 1570tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_missing_required 1571[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial007.py] 1572tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] 1573[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] 1574tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] 1575[gw1] [ 12%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_missing_required 1576[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] 1577tests/client/test_output_schema_validation.py::test_tool_not_listed_warning 1578tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] 1579[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] 1580tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] 1581[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] 1582tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] 1583[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] 1584tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] 1585[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] 1586tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] 1587[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] 1588tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] 1589[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] 1590tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] 1591[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] 1592tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] 1593[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] 1594tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] 1595[gw1] [ 12%] PASSED tests/client/test_output_schema_validation.py::test_tool_not_listed_warning 1596[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] 1597tests/client/test_output_schema_validation.py::test_output_schema_ref_outside_the_document_is_rejected 1598tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] 1599[gw0] [ 12%] PASSED tests/client/test_caching.py::test_store_failures_warn_once_per_burst 1600tests/client/test_caching.py::test_a_set_only_store_failure_warns_once_across_write_cycles 1601[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] 1602tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] 1603[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] 1604tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial008.py] 1605[gw3] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial008.py] 1606tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] 1607[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] 1608tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] 1609[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] 1610tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] 1611[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] 1612tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] 1613[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] 1614tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] 1615[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] 1616tests/docs_src/test_shape.py::test_example_imports[docs_src/whats_new/tutorial001.py] 1617[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/whats_new/tutorial001.py] 1618tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] 1619[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] 1620tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] 1621[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] 1622tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] 1623[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] 1624tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] 1625[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] 1626tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] 1627[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] 1628tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] 1629[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] 1630[gw1] [ 13%] PASSED tests/client/test_output_schema_validation.py::test_output_schema_ref_outside_the_document_is_rejected 1631tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] 1632[gw0] [ 13%] PASSED tests/client/test_caching.py::test_a_set_only_store_failure_warns_once_across_write_cycles 1633[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] 1634tests/client/test_probe.py::test_a_valid_discover_result_is_adopted_without_initializing 1635tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] 1636tests/client/test_caching.py::test_an_eviction_between_capture_and_write_discards_the_write 1637[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] 1638[gw0] [ 13%] PASSED tests/client/test_caching.py::test_an_eviction_between_capture_and_write_discards_the_write 1639tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] 1640[gw1] [ 13%] PASSED tests/client/test_probe.py::test_a_valid_discover_result_is_adopted_without_initializing 1641tests/client/test_probe.py::test_an_unparseable_discover_result_falls_back_to_initialize 1642[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] 1643tests/client/test_caching.py::test_recapturing_a_registered_key_returns_its_current_generation 1644[gw1] [ 13%] PASSED tests/client/test_probe.py::test_an_unparseable_discover_result_falls_back_to_initialize 1645tests/client/test_probe.py::test_a_discover_result_advertising_only_legacy_versions_falls_back_to_initialize 1646tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] 1647[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] 1648[gw0] [ 13%] PASSED tests/client/test_caching.py::test_recapturing_a_registered_key_returns_its_current_generation 1649tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] 1650[gw1] [ 13%] PASSED tests/client/test_probe.py::test_a_discover_result_advertising_only_legacy_versions_falls_back_to_initialize 1651tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[method-not-found-32601] 1652[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] 1653tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] 1654tests/client/test_caching.py::test_the_generation_map_drops_the_oldest_key_at_its_cap 1655[gw0] [ 13%] PASSED tests/client/test_caching.py::test_the_generation_map_drops_the_oldest_key_at_its_cap 1656[gw1] [ 13%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[method-not-found-32601] 1657tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[invalid-request-32600] 1658[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] 1659tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] 1660tests/client/test_caching.py::test_a_refresh_resolving_uncacheable_purges_the_warm_entry 1661[gw0] [ 13%] PASSED tests/client/test_caching.py::test_a_refresh_resolving_uncacheable_purges_the_warm_entry 1662tests/client/test_caching.py::test_evict_key_on_an_unregistered_key_still_deletes_both_arms 1663[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] 1664tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] 1665[gw1] [ 13%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[invalid-request-32600] 1666tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[internal-error-32603] 1667[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] 1668[gw1] [ 13%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[internal-error-32603] 1669tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[parse-error-32700] 1670tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] 1671[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] 1672[gw1] [ 13%] PASSED tests/client/test_probe.py::test_any_jsonrpc_error_from_the_probe_falls_back_to_initialize[parse-error-32700] 1673[gw0] [ 13%] PASSED tests/client/test_caching.py::test_evict_key_on_an_unregistered_key_still_deletes_both_arms 1674tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial001.py] 1675tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[tools-list-changed] 1676[gw0] [ 13%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[tools-list-changed] 1677tests/client/test_probe.py::test_unsupported_version_with_a_mutual_modern_version_retries_once_then_adopts 1678tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[prompts-list-changed] 1679[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial001.py] 1680tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial002.py] 1681[gw1] [ 13%] PASSED tests/client/test_probe.py::test_unsupported_version_with_a_mutual_modern_version_retries_once_then_adopts 1682[gw0] [ 13%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[prompts-list-changed] 1683tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resources-list-changed] 1684[gw0] [ 13%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resources-list-changed] 1685[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/cancellation/tutorial002.py] 1686tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] 1687[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] 1688tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resource-updated] 1689tests/client/test_probe.py::test_unsupported_version_naming_only_handshake_versions_falls_back_to_initialize 1690[gw1] [ 13%] PASSED tests/client/test_probe.py::test_unsupported_version_naming_only_handshake_versions_falls_back_to_initialize 1691tests/client/test_probe.py::test_unsupported_version_with_disjoint_modern_only_supported_reraises 1692[gw0] [ 13%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resource-updated] 1693tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] 1694[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] 1695[gw1] [ 13%] PASSED tests/client/test_probe.py::test_unsupported_version_with_disjoint_modern_only_supported_reraises 1696tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[no-data] 1697tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[unrelated] 1698tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] 1699[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] 1700[gw0] [ 13%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[unrelated] 1701tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] 1702[gw1] [ 13%] PASSED tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[no-data] 1703tests/client/test_client.py::test_client_is_initialized 1704tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[malformed-supported] 1705[gw1] [ 13%] PASSED tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[malformed-supported] 1706[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] 1707tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[missing-supported] 1708tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] 1709[gw1] [ 13%] PASSED tests/client/test_probe.py::test_unsupported_version_with_unparseable_data_falls_back_to_initialize[missing-supported] 1710[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] 1711tests/client/test_probe.py::test_a_second_unsupported_version_after_the_corrective_retry_does_not_loop 1712[gw1] [ 13%] PASSED tests/client/test_probe.py::test_a_second_unsupported_version_after_the_corrective_retry_does_not_loop 1713tests/client/test_probe.py::test_handshake_unsupported_after_a_timed_out_probe_reprobes_and_adopts 1714tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] 1715[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] 1716tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial006.py] 1717[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial006.py] 1718[gw1] [ 13%] PASSED tests/client/test_probe.py::test_handshake_unsupported_after_a_timed_out_probe_reprobes_and_adopts 1719tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[disjoint] 1720[gw1] [ 13%] PASSED tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[disjoint] 1721tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial007.py] 1722[gw3] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial007.py] 1723tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial001.py] 1724tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[no-data] 1725[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial001.py] 1726tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] 1727[gw1] [ 14%] PASSED tests/client/test_probe.py::test_handshake_unsupported_without_a_mutual_version_reraises[no-data] 1728[gw0] [ 14%] PASSED tests/client/test_client.py::test_client_is_initialized 1729tests/client/test_client.py::test_client_exposes_negotiated_protocol_version 1730tests/client/test_probe.py::test_handshake_unsupported_reprobes_at_most_once 1731[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] 1732tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] 1733[gw1] [ 14%] PASSED tests/client/test_probe.py::test_handshake_unsupported_reprobes_at_most_once 1734[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] 1735tests/client/test_probe.py::test_any_other_handshake_error_propagates_unchanged 1736tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] 1737[gw1] [ 14%] PASSED tests/client/test_probe.py::test_any_other_handshake_error_propagates_unchanged 1738[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] 1739tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[httpx2-connect-error] 1740tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] 1741[gw0] [ 14%] PASSED tests/client/test_client.py::test_client_exposes_negotiated_protocol_version 1742[gw1] [ 14%] PASSED tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[httpx2-connect-error] 1743tests/client/test_client.py::test_client_with_simple_server 1744[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] 1745tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] 1746[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] 1747tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[anyio-closed-resource] 1748[gw1] [ 14%] PASSED tests/client/test_probe.py::test_a_network_or_resource_error_from_the_probe_propagates_unchanged[anyio-closed-resource] 1749tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] 1750[gw0] [ 14%] PASSED tests/client/test_client.py::test_client_with_simple_server 1751tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data0-expected0] 1752tests/client/test_client.py::test_client_send_ping 1753[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] 1754tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] 1755[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] 1756[gw1] [ 14%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data0-expected0] 1757tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data1-expected1] 1758[gw1] [ 14%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data1-expected1] 1759tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[None-None] 1760tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial005.py] 1761[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial005.py] 1762tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] 1763[gw1] [ 14%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[None-None] 1764tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data3-None] 1765[gw0] [ 14%] PASSED tests/client/test_client.py::test_client_send_ping 1766[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] 1767tests/client/test_client.py::test_client_list_tools 1768[gw1] [ 14%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[data3-None] 1769tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] 1770tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[not a dict-None] 1771[gw1] [ 14%] PASSED tests/client/test_probe.py::test_parse_supported_returns_none_for_anything_not_shaped_like_the_spec_error_data[not a dict-None] 1772tests/client/test_sampling_callback.py::test_sampling_callback 1773[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] 1774tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] 1775[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] 1776tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] 1777[gw0] [ 14%] PASSED tests/client/test_client.py::test_client_list_tools 1778[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] 1779tests/client/test_client.py::test_client_call_tool 1780tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] 1781[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] 1782tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] 1783[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] 1784tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] 1785[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] 1786tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] 1787[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] 1788[gw1] [ 14%] PASSED tests/client/test_sampling_callback.py::test_sampling_callback 1789tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] 1790tests/client/test_sampling_callback.py::test_create_message_backwards_compat_single_content 1791[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] 1792tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] 1793[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] 1794tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] 1795[gw2] [ 14%] PASSED tests/client/test_transport_stream_cleanup.py::test_sse_client_closes_all_streams_on_http_error 1796[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] 1797tests/client/transports/test_memory.py::test_with_server 1798tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] 1799[gw1] [ 14%] PASSED tests/client/test_sampling_callback.py::test_create_message_backwards_compat_single_content 1800[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] 1801tests/client/test_sampling_callback.py::test_create_message_result_with_tools_type 1802tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] 1803[gw2] [ 14%] PASSED tests/client/transports/test_memory.py::test_with_server 1804tests/client/transports/test_memory.py::test_with_mcpserver 1805[gw1] [ 14%] PASSED tests/client/test_sampling_callback.py::test_create_message_result_with_tools_type 1806[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] 1807tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] 1808tests/client/test_scope_bug_1630.py::test_401_uses_www_auth_scope_not_resource_metadata_url 1809[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] 1810[gw2] [ 14%] PASSED tests/client/transports/test_memory.py::test_with_mcpserver 1811[gw1] [ 14%] PASSED tests/client/test_scope_bug_1630.py::test_401_uses_www_auth_scope_not_resource_metadata_url 1812tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] 1813[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] 1814tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] 1815tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_modern_path 1816tests/client/transports/test_memory.py::test_server_is_running 1817[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] 1818[gw1] [ 14%] PASSED tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_modern_path 1819tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] 1820tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_handshake_path 1821[gw1] [ 14%] PASSED tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_handshake_path 1822[gw2] [ 14%] PASSED tests/client/transports/test_memory.py::test_server_is_running 1823tests/client/test_send_request_mcp_name.py::test_name_value_passes_through_encode_header_value 1824[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] 1825tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] 1826[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] 1827tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] 1828tests/client/transports/test_memory.py::test_list_tools 1829[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] 1830[gw1] [ 14%] PASSED tests/client/test_send_request_mcp_name.py::test_name_value_passes_through_encode_header_value 1831tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] 1832tests/client/test_send_request_mcp_name.py::test_core_tools_call_header_comes_from_the_stamp_alone 1833[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] 1834tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003.py] 1835[gw1] [ 14%] PASSED tests/client/test_send_request_mcp_name.py::test_core_tools_call_header_comes_from_the_stamp_alone 1836tests/client/test_send_request_mcp_name.py::test_stamp_table_rows_win_over_name_param_by_ordering 1837[gw2] [ 14%] PASSED tests/client/transports/test_memory.py::test_list_tools 1838[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003.py] 1839tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003_client.py] 1840[gw3] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003_client.py] 1841tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004.py] 1842[gw1] [ 15%] PASSED tests/client/test_send_request_mcp_name.py::test_stamp_table_rows_win_over_name_param_by_ordering 1843tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_preconnect_path 1844tests/client/transports/test_memory.py::test_call_tool 1845[gw1] [ 15%] PASSED tests/client/test_send_request_mcp_name.py::test_vendor_name_param_emits_mcp_name_on_the_preconnect_path 1846tests/client/test_send_request_mcp_name.py::test_missing_name_value_fails_loud_naming_method_and_key 1847[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004.py] 1848tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] 1849[gw1] [ 15%] PASSED tests/client/test_send_request_mcp_name.py::test_missing_name_value_fails_loud_naming_method_and_key 1850[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] 1851tests/client/test_send_request_mcp_name.py::test_non_string_name_value_fails_loud 1852[gw1] [ 15%] PASSED tests/client/test_send_request_mcp_name.py::test_non_string_name_value_fails_loud 1853tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] 1854[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] 1855tests/client/test_send_request_mcp_name.py::test_absent_params_fails_loud_not_attribute_error 1856tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006.py] 1857[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006.py] 1858[gw1] [ 15%] PASSED tests/client/test_send_request_mcp_name.py::test_absent_params_fails_loud_not_attribute_error 1859tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] 1860[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] 1861tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] 1862tests/client/test_send_request_mcp_name.py::test_request_without_name_param_sends_no_mcp_name 1863[gw1] [ 15%] PASSED tests/client/test_send_request_mcp_name.py::test_request_without_name_param_sends_no_mcp_name 1864tests/client/test_session.py::test_client_session_initialize 1865[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] 1866tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] 1867[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] 1868tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] 1869[gw1] [ 15%] PASSED tests/client/test_session.py::test_client_session_initialize 1870tests/client/test_session.py::test_client_session_custom_client_info 1871[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] 1872tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] 1873[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] 1874tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] 1875[gw1] [ 15%] PASSED tests/client/test_session.py::test_client_session_custom_client_info 1876tests/client/test_session.py::test_client_session_default_client_info 1877[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] 1878tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] 1879[gw1] [ 15%] PASSED tests/client/test_session.py::test_client_session_default_client_info 1880[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] 1881tests/client/test_session.py::test_client_session_version_negotiation_success 1882tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] 1883[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] 1884tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] 1885[gw1] [ 15%] PASSED tests/client/test_session.py::test_client_session_version_negotiation_success 1886tests/client/test_session.py::test_client_session_version_negotiation_failure 1887[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] 1888tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial001.py] 1889[gw1] [ 15%] PASSED tests/client/test_session.py::test_client_session_version_negotiation_failure 1890[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial001.py] 1891tests/client/test_session.py::test_client_capabilities_default 1892tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial002.py] 1893[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial002.py] 1894[gw1] [ 15%] PASSED tests/client/test_session.py::test_client_capabilities_default 1895tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial003.py] 1896tests/client/test_session.py::test_client_capabilities_with_custom_callbacks 1897[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/header_parameters/tutorial003.py] 1898tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] 1899[gw1] [ 15%] PASSED tests/client/test_session.py::test_client_capabilities_with_custom_callbacks 1900[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] 1901tests/client/test_session.py::test_client_capabilities_with_sampling_tools 1902tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] 1903[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] 1904[gw1] [ 15%] PASSED tests/client/test_session.py::test_client_capabilities_with_sampling_tools 1905tests/client/test_session.py::test_initialize_result 1906tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] 1907[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] 1908tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] 1909[gw1] [ 15%] PASSED tests/client/test_session.py::test_initialize_result 1910[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] 1911tests/client/test_session.py::test_client_tool_call_with_meta[None] 1912tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] 1913[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] 1914tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] 1915[gw1] [ 15%] PASSED tests/client/test_session.py::test_client_tool_call_with_meta[None] 1916tests/client/test_session.py::test_client_tool_call_with_meta[meta1] 1917[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] 1918tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial003.py] 1919[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial003.py] 1920tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial001.py] 1921[gw1] [ 15%] PASSED tests/client/test_session.py::test_client_tool_call_with_meta[meta1] 1922tests/client/test_session.py::test_receive_loop_answers_malformed_inbound_request_with_invalid_params 1923[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial001.py] 1924tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial002.py] 1925[gw1] [ 15%] PASSED tests/client/test_session.py::test_receive_loop_answers_malformed_inbound_request_with_invalid_params 1926tests/client/test_session.py::test_receive_loop_answers_unknown_request_method_with_method_not_found 1927[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial002.py] 1928tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/logging/tutorial001.py] 1929[gw1] [ 15%] PASSED tests/client/test_session.py::test_receive_loop_answers_unknown_request_method_with_method_not_found 1930tests/client/test_session.py::test_receive_loop_drops_unknown_notification_method_without_response 1931[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/logging/tutorial001.py] 1932tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial001.py] 1933[gw1] [ 15%] PASSED tests/client/test_session.py::test_receive_loop_drops_unknown_notification_method_without_response 1934[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial001.py] 1935tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial002.py] 1936tests/client/test_session.py::test_on_request_rejects_a_server_request_absent_at_the_negotiated_version 1937[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial002.py] 1938[gw1] [ 15%] PASSED tests/client/test_session.py::test_on_request_rejects_a_server_request_absent_at_the_negotiated_version 1939tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial003.py] 1940tests/client/test_session.py::test_on_request_validates_the_callback_result_against_the_surface_schema 1941[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial003.py] 1942tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial004.py] 1943[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial004.py] 1944[gw1] [ 15%] PASSED tests/client/test_session.py::test_on_request_validates_the_callback_result_against_the_surface_schema 1945tests/client/test_session.py::test_on_request_callback_returning_a_surface_invalid_result_is_internal_error 1946tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial005.py] 1947[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial005.py] 1948tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial006.py] 1949[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial006.py] 1950tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial007.py] 1951[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial007.py] 1952tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial001.py] 1953[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial001.py] 1954tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial002.py] 1955[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial002.py] 1956tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial003.py] 1957[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial003.py] 1958tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial004.py] 1959[gw1] [ 15%] PASSED tests/client/test_session.py::test_on_request_callback_returning_a_surface_invalid_result_is_internal_error 1960[gw3] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial004.py] 1961tests/client/test_session.py::test_on_notify_drops_a_server_notification_absent_at_the_negotiated_version 1962tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial005.py] 1963[gw3] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial005.py] 1964tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/middleware/tutorial001.py] 1965[gw3] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/middleware/tutorial001.py] 1966tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/middleware/tutorial002.py] 1967[gw3] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/middleware/tutorial002.py] 1968tests/docs_src/test_troubleshooting.py::test_a_client_outside_its_async_with_refuses_every_call 1969[gw3] [ 16%] PASSED tests/docs_src/test_troubleshooting.py::test_a_client_outside_its_async_with_refuses_every_call 1970tests/docs_src/test_troubleshooting.py::test_a_failing_tool_returns_is_error_true_instead_of_raising 1971[gw1] [ 16%] PASSED tests/client/test_session.py::test_on_notify_drops_a_server_notification_absent_at_the_negotiated_version 1972tests/client/test_session.py::test_on_request_elicitation_with_loose_property_schema_reaches_the_callback 1973[gw1] [ 16%] PASSED tests/client/test_session.py::test_on_request_elicitation_with_loose_property_schema_reaches_the_callback 1974[gw3] [ 16%] PASSED tests/docs_src/test_troubleshooting.py::test_a_failing_tool_returns_is_error_true_instead_of_raising 1975tests/client/test_session.py::test_send_request_validates_the_server_result_against_the_surface_schema 1976tests/docs_src/test_troubleshooting.py::test_a_crashing_tool_is_the_bare_form_with_its_traceback_in_the_server_log 1977[gw1] [ 16%] PASSED tests/client/test_session.py::test_send_request_validates_the_server_result_against_the_surface_schema 1978tests/client/test_session.py::test_send_request_skips_the_surface_gate_when_method_absent_at_version 1979[gw1] [ 16%] PASSED tests/client/test_session.py::test_send_request_skips_the_surface_gate_when_method_absent_at_version 1980tests/client/test_session.py::test_raising_sampling_callback_answers_with_code_zero 1981[gw1] [ 16%] PASSED tests/client/test_session.py::test_raising_sampling_callback_answers_with_code_zero 1982[gw3] [ 16%] PASSED tests/docs_src/test_troubleshooting.py::test_a_crashing_tool_is_the_bare_form_with_its_traceback_in_the_server_log 1983tests/docs_src/test_troubleshooting.py::test_an_unknown_tool_is_the_same_kind_of_result 1984tests/client/test_session.py::test_receive_loop_logs_and_drops_malformed_notification 1985[gw3] [ 16%] PASSED tests/docs_src/test_troubleshooting.py::test_an_unknown_tool_is_the_same_kind_of_result 1986tests/docs_src/test_troubleshooting.py::test_the_tool_decorator_without_parentheses_raises_at_import_time 1987[gw3] [ 16%] PASSED tests/docs_src/test_troubleshooting.py::test_the_tool_decorator_without_parentheses_raises_at_import_time 1988tests/docs_src/test_troubleshooting.py::test_an_invalid_x_mcp_header_annotation_raises_at_import_time 1989[gw3] [ 16%] PASSED tests/docs_src/test_troubleshooting.py::test_an_invalid_x_mcp_header_annotation_raises_at_import_time 1990tests/docs_src/test_troubleshooting.py::test_a_duplicate_tool_name_keeps_the_first_and_drops_the_second 1991[gw3] [ 16%] PASSED tests/docs_src/test_troubleshooting.py::test_a_duplicate_tool_name_keeps_the_first_and_drops_the_second 1992tests/docs_src/test_troubleshooting.py::test_a_duplicate_registration_logs_tool_already_exists 1993[gw1] [ 16%] PASSED tests/client/test_session.py::test_receive_loop_logs_and_drops_malformed_notification 1994tests/client/test_session.py::test_raising_message_handler_on_transport_exception_costs_the_delivery_not_the_connection 1995[gw3] [ 16%] PASSED tests/docs_src/test_troubleshooting.py::test_a_duplicate_registration_logs_tool_already_exists 1996[gw1] [ 16%] PASSED tests/client/test_session.py::test_raising_message_handler_on_transport_exception_costs_the_delivery_not_the_connection 1997tests/docs_src/test_troubleshooting.py::test_the_default_streamable_http_app_answers_a_real_hostname_with_421 1998tests/client/test_session.py::test_message_handler_awaiting_session_traffic_on_transport_exception_completes 1999[gw1] [ 16%] PASSED tests/client/test_session.py::test_message_handler_awaiting_session_traffic_on_transport_exception_completes 2000tests/client/test_session.py::test_receive_loop_consumes_server_cancelled_without_reaching_message_handler 8897tests/server/test_transport_security.py::test_client_disconnect_before_request_body_is_replayed 8898[gw0] [ 74%] PASSED tests/shared/test_inbound.py::test_classifier_passes_unknown_method_through_to_route[does/not/exist] 8899[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedItems] 8900tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedProperties] 8901tests/server/mcpserver/test_server.py::test_tool_raising_tool_error_is_logged_at_info_without_traceback 8902[gw3] [ 74%] PASSED tests/server/test_transport_security.py::test_client_disconnect_before_request_body_is_replayed 8903tests/server/test_transport_security.py::test_request_body_chunks_are_replayed_as_one_message 8904[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_annotations_under_every_non_properties_applicator[unevaluatedProperties] 8905tests/shared/test_inbound.py::test_ladder_first_failure_wins 8906[gw0] [ 74%] PASSED tests/shared/test_inbound.py::test_ladder_first_failure_wins 8907tests/shared/test_inbound.py::test_error_code_http_status_table[-32700-400] 8908tests/shared/test_inbound.py::test_schema_walk_applicator_keywords_match_the_pinned_reject_cases 8909[gw0] [ 74%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32700-400] 8910tests/shared/test_inbound.py::test_error_code_http_status_table[-32600-400] 8911[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_schema_walk_applicator_keywords_match_the_pinned_reject_cases 8912[gw3] [ 74%] PASSED tests/server/test_transport_security.py::test_request_body_chunks_are_replayed_as_one_message 8913tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[GET] 8914[gw3] [ 74%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[GET] 8915tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_reports_dotted_path_for_nested_property 8916[gw0] [ 74%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32600-400] 8917tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[PUT] 8918tests/shared/test_inbound.py::test_error_code_http_status_table[-32602-400] 8919[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_reports_dotted_path_for_nested_property 8920[gw3] [ 74%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[PUT] 8921tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[OPTIONS] 8922tests/shared/test_inbound.py::test_x_mcp_header_map_keys_top_level_and_nested_properties_by_path 8923[gw0] [ 74%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32602-400] 8924[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_keys_top_level_and_nested_properties_by_path 8925tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[None] 8926tests/shared/test_inbound.py::test_error_code_http_status_table[-32020-400] 8927[gw3] [ 74%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[OPTIONS] 8928tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[HEAD] 8929[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[None] 8930[gw0] [ 74%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32020-400] 8931tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[not-a-mapping] 8932tests/shared/test_inbound.py::test_error_code_http_status_table[-32021-400] 8933[gw3] [ 74%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[HEAD] 8934tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[DELETE] 8935[gw1] [ 74%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[not-a-mapping] 8936[gw0] [ 74%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32021-400] 8937tests/shared/test_inbound.py::test_error_code_http_status_table[-32022-400] 8938tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[input_schema2] 8939[gw0] [ 75%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32022-400] 8940tests/shared/test_inbound.py::test_error_code_http_status_table[-32601-404] 8941[gw3] [ 75%] PASSED tests/server/test_transport_security.py::test_request_body_limit_applies_to_every_method[DELETE] 8942tests/server/test_transport_security.py::test_request_body_limit_leaves_non_http_scopes_alone 8943[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_x_mcp_header_map_empty_for_schemas_without_annotations[input_schema2] 8944[gw0] [ 75%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_table[-32601-404] 8945tests/shared/test_inbound.py::test_error_code_http_status_covers_every_ladder_code 8946tests/shared/test_inbound.py::test_mcp_param_headers_renders_primitive_types_per_spec 8947[gw3] [ 75%] PASSED tests/server/test_transport_security.py::test_request_body_limit_leaves_non_http_scopes_alone 8948[gw2] [ 75%] PASSED tests/server/mcpserver/test_server.py::test_tool_raising_tool_error_is_logged_at_info_without_traceback 8949tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_caps_none 8950[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_renders_primitive_types_per_spec 8951[gw0] [ 75%] PASSED tests/shared/test_inbound.py::test_error_code_http_status_covers_every_ladder_code 8952tests/shared/test_inbound.py::test_verdict_dataclasses_are_frozen 8953tests/server/mcpserver/test_server.py::test_tool_error_subclass_is_still_anticipated 8954tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[plain-ascii] 8955[gw0] [ 75%] PASSED tests/shared/test_inbound.py::test_verdict_dataclasses_are_frozen 8956tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[plain] 8957[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[plain-ascii] 8958[gw3] [ 75%] PASSED tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_caps_none 8959tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_sampling_none 8960[gw0] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[plain] 8961[gw3] [ 75%] PASSED tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_sampling_none 8962tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[non-ascii] 8963tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[with internal space] 8964tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_tools_none 8965[gw3] [ 75%] PASSED tests/server/test_validation.py::test_check_sampling_tools_capability_returns_false_when_tools_none 8966[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[non-ascii] 8967tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[edge-whitespace] 8968[gw0] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[with internal space] 8969tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[] 8970[gw0] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[] 8971tests/server/test_validation.py::test_check_sampling_tools_capability_returns_true_when_tools_present 8972[gw3] [ 75%] PASSED tests/server/test_validation.py::test_check_sampling_tools_capability_returns_true_when_tools_present 8973tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[ edge-ws ] 8974tests/server/test_validation.py::test_validate_sampling_tools_no_error_when_tools_none 8975[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[edge-whitespace] 8976[gw0] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[ edge-ws ] 8977[gw3] [ 75%] PASSED tests/server/test_validation.py::test_validate_sampling_tools_no_error_when_tools_none 8978tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[control-char] 8979tests/server/test_validation.py::test_validate_sampling_tools_raises_when_tools_provided_but_no_capability 8980tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[r\xe9sum\xe9] 8981[gw0] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[r\xe9sum\xe9] 8982[gw3] [ 75%] PASSED tests/server/test_validation.py::test_validate_sampling_tools_raises_when_tools_provided_but_no_capability 8983tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[a\r\nb] 8984[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[control-char] 8985tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[sentinel-lookalike] 8986tests/server/test_validation.py::test_validate_sampling_tools_raises_when_tool_choice_provided_but_no_capability 8987[gw3] [ 75%] PASSED tests/server/test_validation.py::test_validate_sampling_tools_raises_when_tool_choice_provided_but_no_capability 8988[gw0] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[a\r\nb] 8989tests/server/test_validation.py::test_validate_sampling_tools_no_error_when_capability_present 8990[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_base64_wraps_header_unsafe_strings[sentinel-lookalike] 8991tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[=?base64?Zm9v?=] 8992tests/shared/test_inbound.py::test_mcp_param_headers_omits_absent_or_null_arguments 8993[gw0] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_round_trips_encode[=?base64?Zm9v?=] 8994[gw3] [ 75%] PASSED tests/server/test_validation.py::test_validate_sampling_tools_no_error_when_capability_present 8995tests/shared/test_inbound.py::test_decode_header_value_passes_none_and_plain_through 8996tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_for_empty_messages 8997[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_absent_or_null_arguments 8998[gw0] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_passes_none_and_plain_through 8999[gw3] [ 75%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_for_empty_messages 9000tests/shared/test_inbound.py::test_mcp_param_headers_reads_nested_argument_path 9001tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_for_simple_text_messages 9002[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_reads_nested_argument_path 9003[gw2] [ 75%] PASSED tests/server/mcpserver/test_server.py::test_tool_error_subclass_is_still_anticipated 9004[gw3] [ 75%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_for_simple_text_messages 9005tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?not base64!?=] 9006[gw0] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?not base64!?=] 9007tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?gA==?=] 9008tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_mixed_with_other_content 9009tests/shared/test_inbound.py::test_mcp_param_headers_omits_when_nested_path_is_broken 9010tests/server/mcpserver/test_server.py::test_tool_argument_validation_failure_is_logged_at_info_without_traceback 9011[gw0] [ 75%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_malformed_sentinel[=?base64?gA==?=] 9012[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_when_nested_path_is_broken 9013tests/shared/test_inbound.py::test_name_bearing_methods_table_matches_spec 9014[gw0] [ 75%] PASSED tests/shared/test_inbound.py::test_name_bearing_methods_table_matches_spec 9015[gw3] [ 75%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_mixed_with_other_content 9016tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[none] 9017tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_without_previous_tool_use 9018tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[plain-literal] 9019[gw0] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[none] 9020tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping] 9021[gw3] [ 75%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_without_previous_tool_use 9022tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_previous_message_has_no_tool_use 9023[gw0] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping] 9024tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-properties] 9025[gw3] [ 75%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_previous_message_has_no_tool_use 9026tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_ids_dont_match_tool_use 9027[gw0] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-properties] 9028[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[plain-literal] 9029tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[valid-sentinel] 9030[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[valid-sentinel] 9031tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[empty-sentinel] 9032[gw3] [ 75%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_raises_when_tool_result_ids_dont_match_tool_use 9033[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[empty-sentinel] 9034tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[properties-non-mapping] 9035[gw0] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[properties-non-mapping] 9036tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-annotation] 9037tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_when_tool_result_matches_tool_use 9038tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-prefix-is-literal] 9039[gw0] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[no-annotation] 9040[gw3] [ 75%] PASSED tests/server/test_validation.py::test_validate_tool_use_result_messages_no_error_when_tool_result_matches_tool_use 9041tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-string] 9042tests/shared/test_auth.py::test_oauth 9043[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-prefix-is-literal] 9044[gw0] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-string] 9045tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-integer] 9046tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-suffix-is-literal] 9047[gw3] [ 75%] PASSED tests/shared/test_auth.py::test_oauth 9048tests/shared/test_auth.py::test_oidc 9049[gw0] [ 75%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-integer] 9050tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-boolean] 9051[gw1] [ 75%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_agreeing_header_and_argument[missing-suffix-is-literal] 9052[gw3] [ 75%] PASSED tests/shared/test_auth.py::test_oidc 9053tests/shared/test_auth.py::test_oauth_with_jarm 9054tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[missing-padding] 9055[gw2] [ 75%] PASSED tests/server/mcpserver/test_server.py::test_tool_argument_validation_failure_is_logged_at_info_without_traceback 9056[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[missing-padding] 9057tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-alphabet-chars] 9058[gw0] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[valid-boolean] 9059tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[two-distinct] 9060[gw3] [ 76%] PASSED tests/shared/test_auth.py::test_oauth_with_jarm 9061tests/server/mcpserver/test_server.py::test_tool_argument_validation_failure_chains_directly_to_the_validation_error 9062[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-alphabet-chars] 9063tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[client_uri] 9064[gw0] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[two-distinct] 9065tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping-prop] 9066[gw3] [ 76%] PASSED tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[client_uri] 9067[gw0] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[non-mapping-prop] 9068[gw2] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_tool_argument_validation_failure_chains_directly_to_the_validation_error 9069tests/server/mcpserver/test_server.py::test_validation_error_raised_inside_the_tool_body_is_a_crash 9070tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-canonical-trailing-bits] 9071[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[non-canonical-trailing-bits] 9072tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[invalid-utf8] 9073tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[nested-on-properties-chain] 9074tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[logo_uri] 9075[gw0] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[nested-on-properties-chain] 9076tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-default-is-data] 9077[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_malformed_sentinel[invalid-utf8] 9078[gw3] [ 76%] PASSED tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[logo_uri] 9079[gw0] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-default-is-data] 9080tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_missing_header_for_present_argument 9081[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_missing_header_for_present_argument 9082tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[tos_uri] 9083[gw3] [ 76%] PASSED tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[tos_uri] 9084tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[policy_uri] 9085tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-examples-is-data] 9086[gw0] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-examples-is-data] 9087tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-const-is-data] 9088[gw0] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-const-is-data] 9089tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[absent] 9090[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[absent] 9091[gw3] [ 76%] PASSED tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[policy_uri] 9092tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[jwks_uri] 9093tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-enum-is-data] 9094tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[null] 9095[gw3] [ 76%] PASSED tests/shared/test_auth.py::test_optional_url_empty_string_coerced_to_none[jwks_uri] 9096tests/shared/test_auth.py::test_all_optional_urls_empty_together 9097[gw0] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[annotation-lookalike-in-enum-is-data] 9098tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[ref-is-not-dereferenced] 9099[gw0] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[ref-is-not-dereferenced] 9100tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[malformed-or-empty-applicators-ignored] 9101[gw3] [ 76%] PASSED tests/shared/test_auth.py::test_all_optional_urls_empty_together 9102[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_orphan_header_for_absent_or_null_argument[null] 9103tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_value_mismatch 9104tests/shared/test_auth.py::test_valid_url_passes_through_unchanged 9105[gw0] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_accepts_valid_or_absent_annotations[malformed-or-empty-applicators-ignored] 9106[gw3] [ 76%] PASSED tests/shared/test_auth.py::test_valid_url_passes_through_unchanged 9107tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[empty] 9108tests/shared/test_auth.py::test_information_full_inherits_coercion 9109[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_value_mismatch 9110[gw0] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[empty] 9111[gw3] [ 76%] PASSED tests/shared/test_auth.py::test_information_full_inherits_coercion 9112tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[space] 9113tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_absent_argument_with_no_header 9114tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[unregistered-application-type] 9115[gw0] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[space] 9116tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[colon] 9117[gw2] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_validation_error_raised_inside_the_tool_body_is_a_crash 9118tests/server/mcpserver/test_server.py::test_return_value_failing_the_output_schema_is_a_crash 9119[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_absent_argument_with_no_header 9120tests/shared/test_inbound.py::test_validate_mcp_param_headers_matches_header_names_case_insensitively 9121[gw3] [ 76%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[unregistered-application-type] 9122tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[empty-application-type] 9123[gw0] [ 76%] PASSED tests/shared/test_inbound.py::test_find_invalid_x_mcp_header_rejects_malformed_annotations[colon] 9124[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_matches_header_names_case_insensitively 9125[gw3] [ 76%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[empty-application-type] 9126tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[null-application-type] 9127tests/shared/test_inbound.py::test_validate_mcp_param_headers_ignores_undeclared_mcp_param_headers 9128tests/shared/test_jsonrpc_dispatcher.py::test_server_middleware_observes_cancelled_notification 9129[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_ignores_undeclared_mcp_param_headers 9130[gw3] [ 76%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[null-application-type] 9131tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[unimplemented-auth-method] 9132tests/shared/test_inbound.py::test_validate_mcp_param_headers_validates_nothing_for_an_invalid_annotation_schema 9133[gw3] [ 76%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[unimplemented-auth-method] 9134tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[extra-grant-type] 9135[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_validates_nothing_for_an_invalid_annotation_schema 9136[gw0] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_server_middleware_observes_cancelled_notification 9137[gw3] [ 76%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[extra-grant-type] 9138tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_with_caller_supplied_string_id_is_verbatim_on_the_wire 9139tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[empty-redirect-uris] 9140tests/shared/test_inbound.py::test_validate_mcp_param_headers_reads_nested_argument_paths 9141[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_reads_nested_argument_paths 9142[gw3] [ 76%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[empty-redirect-uris] 9143tests/shared/test_auth.py::test_client_information_without_echoed_metadata_still_parses 9144tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_booleans_against_true_false_rendering 9145[gw0] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_with_caller_supplied_string_id_is_verbatim_on_the_wire 9146[gw3] [ 76%] PASSED tests/shared/test_auth.py::test_client_information_without_echoed_metadata_still_parses 9147tests/shared/test_otel.py::test_extract_trace_context_degrades_to_no_parent_on_malformed_traceparent 9148tests/shared/test_auth.py::test_every_request_metadata_field_exists_on_the_client_record 9149[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_booleans_against_true_false_rendering 9150tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[exact] 9151[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[exact] 9152[gw0] [ 76%] PASSED tests/shared/test_otel.py::test_extract_trace_context_degrades_to_no_parent_on_malformed_traceparent 9153[gw3] [ 76%] PASSED tests/shared/test_auth.py::test_every_request_metadata_field_exists_on_the_client_record 9154tests/shared/test_auth.py::test_a_registration_response_without_a_client_id_is_rejected 9155tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[trailing-zero-fraction] 9156tests/shared/test_otel.py::test_client_and_server_spans 9157[gw3] [ 76%] PASSED tests/shared/test_auth.py::test_a_registration_response_without_a_client_id_is_rejected 9158tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[grant_types-null] 9159[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[trailing-zero-fraction] 9160[gw3] [ 76%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[grant_types-null] 9161tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[long-zero-fraction] 9162tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[grant_types-empty-string] 9163[gw2] [ 76%] PASSED tests/server/mcpserver/test_server.py::test_return_value_failing_the_output_schema_is_a_crash 9164[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[long-zero-fraction] 9165[gw3] [ 76%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[grant_types-empty-string] 9166tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[real-fraction] 9167tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[response_types-null] 9168tests/server/mcpserver/test_server.py::test_unknown_tool_is_logged_at_info_without_traceback 9169[gw3] [ 76%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[response_types-null] 9170[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[real-fraction] 9171tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[scientific-notation-never-numeric] 9172tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[response_types-empty-string] 9173[gw3] [ 76%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[response_types-empty-string] 9174[gw1] [ 76%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[scientific-notation-never-numeric] 9175tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[redirect_uris-null] 9176tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[different-value] 9177[gw3] [ 77%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[redirect_uris-null] 9178[gw1] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[different-value] 9179tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[redirect_uris-empty-string] 9180tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[negative] 9181[gw0] [ 77%] PASSED tests/shared/test_otel.py::test_client_and_server_spans 9182[gw3] [ 77%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[redirect_uris-empty-string] 9183[gw1] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[negative] 9184tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[application_type-null] 9185tests/shared/test_otel.py::test_client_span_records_error_status_when_peer_answers_with_jsonrpc_error 9186[gw3] [ 77%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[application_type-null] 9187tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-exact] 9188[gw1] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-exact] 9189tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-off-by-one] 9190tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[application_type-empty-string] 9191[gw3] [ 77%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[application_type-empty-string] 9192tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[token_endpoint_auth_method-null] 9193[gw1] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integers_numerically[beyond-ieee754-safe-range-off-by-one] 9194tests/shared/test_inbound.py::test_validate_mcp_param_headers_non_primitive_body_value_rejects_only_when_a_header_claims_it 9195[gw3] [ 77%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[token_endpoint_auth_method-null] 9196tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[token_endpoint_auth_method-empty-string] 9197[gw1] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_non_primitive_body_value_rejects_only_when_a_header_claims_it 9198tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_recognized_header_supplied_more_than_once 9199[gw1] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_recognized_header_supplied_more_than_once 9200tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_header_exceeding_the_int_conversion_limit 9201[gw3] [ 77%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[token_endpoint_auth_method-empty-string] 9202tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[scope-null] 9203[gw3] [ 77%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[scope-null] 9204tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[scope-empty-string] 9205[gw1] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_rejects_a_header_exceeding_the_int_conversion_limit 9206[gw0] [ 77%] PASSED tests/shared/test_otel.py::test_client_span_records_error_status_when_peer_answers_with_jsonrpc_error 9207tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integral_float_bodies_numerically 9208[gw2] [ 77%] PASSED tests/server/mcpserver/test_server.py::test_unknown_tool_is_logged_at_info_without_traceback 9209tests/shared/test_path_security.py::test_contains_path_traversal[a/b/c-False] 9210[gw3] [ 77%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[scope-empty-string] 9211tests/shared/test_auth.py::test_a_placeholder_client_id_is_a_missing_client_id 9212[gw1] [ 77%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_compares_integral_float_bodies_numerically 9213tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[non-canonical-trailing-bits] 9214tests/server/mcpserver/test_server.py::test_tool_raising_mcp_error_is_not_logged_by_mcpserver 9215[gw3] [ 77%] PASSED tests/shared/test_auth.py::test_a_placeholder_client_id_is_a_missing_client_id 9216[gw1] [ 77%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[non-canonical-trailing-bits] 9217tests/shared/test_auth.py::test_client_information_that_is_not_an_object_still_fails_the_parse 9218tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[missing-padding] 9219[gw0] [ 77%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/c-False] 9220tests/shared/test_path_security.py::test_contains_path_traversal[readme.txt-False] 9221[gw0] [ 77%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[readme.txt-False] 9222tests/shared/test_path_security.py::test_contains_path_traversal[-False] 9223[gw1] [ 77%] PASSED tests/shared/test_inbound.py::test_decode_header_value_returns_none_for_non_canonical_base64[missing-padding] 9224[gw3] [ 77%] PASSED tests/shared/test_auth.py::test_client_information_that_is_not_an_object_still_fails_the_parse 9225tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[unspecified-absent] 9226tests/shared/test_sse.py::test_sse_client_basic_connection 9227[gw0] [ 77%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[-False] 9228tests/shared/test_path_security.py::test_contains_path_traversal[.-False] 9229[gw3] [ 77%] PASSED tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[unspecified-absent] 9230[gw0] [ 77%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[.-False] 9231tests/shared/test_path_security.py::test_contains_path_traversal[./a/b-False] 9232tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[unspecified-empty] 9233[gw3] [ 77%] PASSED tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[unspecified-empty] 9234tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[specified-absent] 9235[gw2] [ 77%] PASSED tests/server/mcpserver/test_server.py::test_tool_raising_mcp_error_is_not_logged_by_mcpserver 9236tests/server/mcpserver/test_server.py::test_resolver_raising_tool_error_is_anticipated 9237[gw0] [ 77%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./a/b-False] 9238tests/shared/test_path_security.py::test_contains_path_traversal[a/../b-False] 9239[gw3] [ 77%] PASSED tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[specified-absent] 9240[gw0] [ 77%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../b-False] 9241tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[specified-empty] 9242tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../c-False] 9243[gw1] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection 9244[gw3] [ 77%] PASSED tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[specified-empty] 9245tests/shared/test_sse.py::test_sse_client_on_session_created 9246[gw0] [ 77%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../c-False] 9247tests/shared/test_auth.py::test_request_metadata_restricts_application_type_to_the_values_the_sdk_sends 9248tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../../c-False] 9249[gw3] [ 77%] PASSED tests/shared/test_auth.py::test_request_metadata_restricts_application_type_to_the_values_the_sdk_sends 9250[gw0] [ 77%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/b/../../c-False] 9251tests/shared/test_path_security.py::test_contains_path_traversal[..-True] 9252tests/shared/test_auth.py::test_request_metadata_requires_at_least_one_redirect_uri 9253[gw3] [ 77%] PASSED tests/shared/test_auth.py::test_request_metadata_requires_at_least_one_redirect_uri 9254[gw1] [ 77%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created 9255tests/shared/test_auth.py::test_invalid_non_empty_url_still_rejected 9256[gw0] [ 77%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..-True] 9257tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] 9258tests/shared/test_path_security.py::test_contains_path_traversal[../etc-True] 9259[gw3] [ 77%] PASSED tests/shared/test_auth.py::test_invalid_non_empty_url_still_rejected 9260[gw1] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] 9261tests/shared/test_auth_utils.py::test_resource_url_from_server_url_removes_fragment 9262[gw0] [ 77%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../etc-True] 9263tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] 9264tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] 9265[gw1] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] 9266[gw3] [ 77%] PASSED tests/shared/test_auth_utils.py::test_resource_url_from_server_url_removes_fragment 9267tests/shared/test_auth_utils.py::test_resource_url_from_server_url_preserves_path 9268tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] 9269[gw1] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] 9270tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] 9271[gw1] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] 9272tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] 9273[gw1] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] 9274tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] 9275[gw2] [ 77%] PASSED tests/server/mcpserver/test_server.py::test_resolver_raising_tool_error_is_anticipated 9276tests/server/mcpserver/test_server.py::test_resolver_crash_is_logged_as_the_tools_crash 9277[gw3] [ 77%] PASSED tests/shared/test_auth_utils.py::test_resource_url_from_server_url_preserves_path 9278tests/shared/test_auth_utils.py::test_resource_url_from_server_url_preserves_query 9279[gw3] [ 77%] PASSED tests/shared/test_auth_utils.py::test_resource_url_from_server_url_preserves_query 9280tests/shared/test_auth_utils.py::test_resource_url_from_server_url_preserves_port 9281[gw3] [ 77%] PASSED tests/shared/test_auth_utils.py::test_resource_url_from_server_url_preserves_port 9282tests/shared/test_auth_utils.py::test_resource_url_from_server_url_lowercase_scheme_and_host 9283[gw3] [ 77%] PASSED tests/shared/test_auth_utils.py::test_resource_url_from_server_url_lowercase_scheme_and_host 9284tests/shared/test_auth_utils.py::test_resource_url_from_server_url_handles_pydantic_urls 9285[gw3] [ 77%] PASSED tests/shared/test_auth_utils.py::test_resource_url_from_server_url_handles_pydantic_urls 9286tests/shared/test_auth_utils.py::test_check_resource_allowed_identical_urls 9287[gw1] [ 77%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] 9288tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id 9289[gw0] [ 77%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] 9290tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] 9291[gw0] [ 77%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] 9292tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] 9293[gw0] [ 77%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] 9294tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] 9295[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] 9296tests/shared/test_path_security.py::test_contains_path_traversal[foo..bar-False] 9297[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[foo..bar-False] 9298tests/shared/test_path_security.py::test_contains_path_traversal[..foo-False] 9299[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..foo-False] 9300[gw3] [ 78%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_identical_urls 9301tests/shared/test_auth_utils.py::test_check_resource_allowed_different_schemes 9302[gw3] [ 78%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_different_schemes 9303tests/shared/test_path_security.py::test_contains_path_traversal[foo..-False] 9304[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[foo..-False] 9305tests/shared/test_auth_utils.py::test_check_resource_allowed_different_domains 9306[gw1] [ 78%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id 9307tests/shared/test_sse.py::test_sse_client_happy_request_and_response 9308[gw3] [ 78%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_different_domains 9309tests/shared/test_path_security.py::test_contains_path_traversal[..\\etc-True] 9310tests/shared/test_auth_utils.py::test_check_resource_allowed_different_ports 9311[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..\\etc-True] 9312tests/shared/test_path_security.py::test_contains_path_traversal[a\\..\\..\\b-True] 9313[gw3] [ 78%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_different_ports 9314tests/shared/test_auth_utils.py::test_check_resource_allowed_hierarchical_matching 9315[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a\\..\\..\\b-True] 9316tests/shared/test_path_security.py::test_contains_path_traversal[a\\b\\c-False] 9317[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a\\b\\c-False] 9318tests/shared/test_path_security.py::test_contains_path_traversal[a/..\\..\\b-True] 9319[gw3] [ 78%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_hierarchical_matching 9320[gw2] [ 78%] PASSED tests/server/mcpserver/test_server.py::test_resolver_crash_is_logged_as_the_tools_crash 9321tests/server/mcpserver/test_server.py::test_argument_validator_that_crashes_is_the_tools_crash 9322[gw1] [ 78%] PASSED tests/shared/test_sse.py::test_sse_client_happy_request_and_response 9323tests/shared/test_sse.py::test_sse_client_exception_handling 9324tests/shared/test_auth_utils.py::test_check_resource_allowed_path_boundary_matching 9325[gw3] [ 78%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_path_boundary_matching 9326tests/shared/test_auth_utils.py::test_check_resource_allowed_trailing_slash_handling 9327[gw3] [ 78%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_trailing_slash_handling 9328[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/..\\..\\b-True] 9329tests/shared/test_path_security.py::test_is_absolute_path[relative/path-False] 9330[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[relative/path-False] 9331tests/shared/test_auth_utils.py::test_check_resource_allowed_case_insensitive_origin 9332tests/shared/test_path_security.py::test_is_absolute_path[file.txt-False] 9333[gw3] [ 78%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_case_insensitive_origin 9334[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[file.txt-False] 9335tests/shared/test_auth_utils.py::test_check_resource_allowed_empty_paths 9336tests/shared/test_path_security.py::test_is_absolute_path[-False] 9337[gw3] [ 78%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_empty_paths 9338[gw1] [ 78%] PASSED tests/shared/test_sse.py::test_sse_client_exception_handling 9339[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[-False] 9340tests/shared/test_path_security.py::test_is_absolute_path[.-False] 9341tests/shared/test_context.py::test_base_context_forwards_transport_and_cancel_requested 9342tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app 9343[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[.-False] 9344[gw3] [ 78%] PASSED tests/shared/test_context.py::test_base_context_forwards_transport_and_cancel_requested 9345tests/shared/test_path_security.py::test_is_absolute_path[..-False] 9346tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] 9347[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[..-False] 9348tests/shared/test_path_security.py::test_is_absolute_path[/-True] 9349[gw3] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] 9350tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] 9351[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/-True] 9352[gw3] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] 9353tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] 9354tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] 9355[gw1] [ 78%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app 9356[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] 9357tests/shared/test_sse.py::test_request_context_propagation 9358[gw2] [ 78%] PASSED tests/server/mcpserver/test_server.py::test_argument_validator_that_crashes_is_the_tools_crash 9359[gw3] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] 9360tests/shared/test_path_security.py::test_is_absolute_path[/a-True] 9361tests/server/mcpserver/test_server.py::test_argument_validator_raising_mcp_error_is_a_protocol_error 9362[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/a-True] 9363tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name 9364[gw3] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name 9365tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length 9366tests/shared/test_path_security.py::test_is_absolute_path[C:-True] 9367[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:-True] 9368[gw3] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length 9369tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] 9370tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] 9371[gw2] [ 78%] PASSED tests/server/mcpserver/test_server.py::test_argument_validator_raising_mcp_error_is_a_protocol_error 9372tests/server/mcpserver/test_server.py::test_resource_error_escaping_a_tool_is_anticipated 9373[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] 9374tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] 9375[gw3] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] 9376tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] 9377[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] 9378[gw1] [ 78%] PASSED tests/shared/test_sse.py::test_request_context_propagation 9379[gw3] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] 9380tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] 9381tests/shared/test_sse.py::test_request_context_isolation 9382tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] 9383[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] 9384tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] 9385[gw3] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] 9386tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] 9387[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] 9388tests/shared/test_path_security.py::test_is_absolute_path[\\foo-True] 9389[gw3] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] 9390[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\foo-True] 9391tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] 9392tests/shared/test_path_security.py::test_is_absolute_path[C:relative-True] 9393[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:relative-True] 9394[gw3] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] 9395tests/shared/test_path_security.py::test_is_absolute_path[x:y-True] 9396tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] 9397[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[x:y-True] 9398tests/shared/test_path_security.py::test_is_absolute_path[a:debug-True] 9399[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[a:debug-True] 9400[gw3] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] 9401tests/shared/test_path_security.py::test_is_absolute_path[1:foo-False] 9402[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[1:foo-False] 9403tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars 9404tests/shared/test_path_security.py::test_is_absolute_path[ab:c-False] 9405[gw3] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars 9406tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters 9407[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[ab:c-False] 9408tests/shared/test_path_security.py::test_is_absolute_path[\u03a9:namespace-False] 9409[gw3] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters 9410[gw0] [ 78%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\u03a9:namespace-False] 9411tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash 9412tests/shared/test_path_security.py::test_is_absolute_path[\xe9:foo-False] 9413[gw3] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash 9414tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash 9415[gw0] [ 79%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\xe9:foo-False] 9416[gw3] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash 9417tests/shared/test_path_security.py::test_safe_join_simple 9418[gw2] [ 79%] PASSED tests/server/mcpserver/test_server.py::test_resource_error_escaping_a_tool_is_anticipated 9419tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot 9420[gw3] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot 9421[gw0] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_simple 9422tests/server/mcpserver/test_server.py::test_resource_crash_escaping_a_tool_is_the_tools_crash 9423[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_request_context_isolation 9424tests/shared/test_sse.py::test_sse_message_id_coercion 9425tests/shared/test_path_security.py::test_safe_join_resolves_relative_base 9426tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot 9427[gw0] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_resolves_relative_base 9428[gw3] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot 9429tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings 9430[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_sse_message_id_coercion 9431tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] 9432tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape 9433[gw3] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings 9434[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] 9435tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings 9436[gw0] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape 9437tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape 9438tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] 9439[gw0] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape 9440[gw3] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings 9441tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name 9442[gw3] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name 9443tests/shared/test_path_security.py::test_safe_join_allows_balanced_dotdot 9444[gw0] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_allows_balanced_dotdot 9445tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part 9446[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] 9447tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] 9448tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name 9449[gw0] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part 9450[gw3] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name 9451[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] 9452tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part 9453tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] 9454tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name 9455[gw0] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part 9456tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive 9457[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] 9458tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] 9459[gw3] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name 9460tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name 9461[gw3] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name 9462[gw0] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive 9463tests/shared/test_path_security.py::test_safe_join_rejects_null_byte 9464tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] 9465[gw2] [ 79%] PASSED tests/server/mcpserver/test_server.py::test_resource_crash_escaping_a_tool_is_the_tools_crash 9466tests/server/mcpserver/test_server.py::test_tool_that_recovers_from_a_missing_resource_logs_nothing 9467[gw0] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte 9468tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part 9469[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] 9470[gw3] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] 9471tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] 9472tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] 9473[gw0] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part 9474tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape 9475[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] 9476tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] 9477[gw3] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] 9478tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] 9479[gw0] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape 9480[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] 9481tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] 9482[gw2] [ 79%] PASSED tests/server/mcpserver/test_server.py::test_tool_that_recovers_from_a_missing_resource_logs_nothing 9483[gw3] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] 9484tests/shared/test_path_security.py::test_safe_join_base_equals_target 9485[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] 9486tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings 9487tests/server/mcpserver/test_server.py::test_static_resource_raising_unexpected_exception_is_logged_once_at_error_with_its_traceback 9488tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] 9489[gw3] [ 79%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] 9490tests/shared/test_uri_template.py::test_parse_literal_only 9491[gw0] [ 79%] PASSED tests/shared/test_path_security.py::test_safe_join_base_equals_target 9492tests/shared/test_path_security.py::test_path_escape_error_is_value_error 9493[gw0] [ 79%] PASSED tests/shared/test_path_security.py::test_path_escape_error_is_value_error 9494tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result 9495[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings 9496tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect 9497[gw3] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_literal_only 9498tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] 9499[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect 9500tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect 9501[gw3] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] 9502[gw0] [ 79%] PASSED tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result 9503tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only 9504[gw1] [ 79%] PASSED tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect 9505tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] 9506tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect 9507[gw0] [ 79%] PASSED tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only 9508[gw3] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] 9509tests/shared/test_uri_template.py::test_is_template[-False] 9510tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result 9511[gw0] [ 79%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result 9512[gw3] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[-False] 9513tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result 9514tests/shared/test_uri_template.py::test_is_template[{a}-True] 9515[gw3] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[{a}-True] 9516tests/shared/test_uri_template.py::test_is_template[{-False] 9517[gw0] [ 79%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result 9518tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params 9519[gw3] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[{-False] 9520tests/shared/test_uri_template.py::test_is_template[}-False] 9521[gw0] [ 79%] PASSED tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params 9522[gw2] [ 79%] PASSED tests/server/mcpserver/test_server.py::test_static_resource_raising_unexpected_exception_is_logged_once_at_error_with_its_traceback 9523tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params 9524tests/server/mcpserver/test_server.py::test_resource_template_raising_unexpected_exception_is_logged_once_at_error_with_its_traceback 9525[gw3] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[}-False] 9526tests/shared/test_uri_template.py::test_is_template[}{-False] 9527[gw0] [ 79%] PASSED tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params 9528[gw3] [ 79%] PASSED tests/shared/test_uri_template.py::test_is_template[}{-False] 9529tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result 9530tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] 9531[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] 9532tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] 9533[gw0] [ 80%] PASSED tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result 9534tests/shared/test_peer.py::test_peer_list_roots_with_meta_sends_meta_in_params 9535[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] 9536[gw0] [ 80%] PASSED tests/shared/test_peer.py::test_peer_list_roots_with_meta_sends_meta_in_params 9537tests/shared/test_uri_template.py::test_parse_simple_variable 9538tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 9539[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_simple_variable 9540tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] 9541[gw1] [ 80%] PASSED tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect 9542[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] 9543tests/shared/test_streamable_http.py::test_accept_header_validation 9544tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] 9545[gw0] [ 80%] PASSED tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 9546[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] 9547tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta 9548[gw1] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_validation 9549tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] 9550[gw0] [ 80%] PASSED tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta 9551tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] 9552[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] 9553tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] 9554tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias 9555[gw0] [ 80%] PASSED tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias 9556tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound 9557[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] 9558[gw2] [ 80%] PASSED tests/server/mcpserver/test_server.py::test_resource_template_raising_unexpected_exception_is_logged_once_at_error_with_its_traceback 9559[gw1] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] 9560[gw0] [ 80%] PASSED tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound 9561tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] 9562tests/server/mcpserver/test_server.py::test_read_resource_wraps_a_crash_as_unexpected_resource_error_chained_to_the_original 9563tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] 9564tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none 9565[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] 9566[gw0] [ 80%] PASSED tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none 9567tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] 9568tests/shared/test_request_clock.py::test_a_wait_that_began_before_the_clock_started_leaves_the_whole_budget[trio-mockclock] 9569[gw1] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] 9570[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] 9571tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] 9572tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] 9573[gw0] [ 80%] PASSED tests/shared/test_request_clock.py::test_a_wait_that_began_before_the_clock_started_leaves_the_whole_budget[trio-mockclock] 9574[gw2] [ 80%] PASSED tests/server/mcpserver/test_server.py::test_read_resource_wraps_a_crash_as_unexpected_resource_error_chained_to_the_original 9575tests/shared/test_request_clock.py::test_the_clock_stops_and_resumes_on_asyncio 9576tests/server/mcpserver/test_server.py::test_custom_resource_subclass_crash_is_wrapped_and_logged_like_a_function_resource 9577[gw1] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] 9578[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] 9579tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression 9580[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression 9581tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] 9582tests/shared/test_uri_template.py::test_parse_multiple_expressions 9583[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_expressions 9584tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] 9585[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] 9586[gw1] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] 9587tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] 9588tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] 9589[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] 9590[gw1] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] 9591tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] 9592[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] 9593tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] 9594tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] 9595[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] 9596tests/shared/test_uri_template.py::test_parse_explode_modifier 9597[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_explode_modifier 9598[gw1] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] 9599tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] 9600[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] 9601[gw2] [ 80%] PASSED tests/server/mcpserver/test_server.py::test_custom_resource_subclass_crash_is_wrapped_and_logged_like_a_function_resource 9602tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] 9603tests/server/mcpserver/test_server.py::test_static_resource_raising_resource_not_found_error_is_invalid_params_logged_at_info 9604tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] 9605[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] 9606tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain 9607[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain 9608tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores 9609[gw1] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] 9610tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] 9611[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores 9612tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression 9613[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression 9614tests/shared/test_uri_template.py::test_parse_rejects_empty_expression 9615[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_expression 9616[gw1] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] 9617tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable 9618tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] 9619[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable 9620tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] 9621[gw1] [ 80%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] 9622tests/shared/test_streamable_http.py::test_content_type_validation 9623[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] 9624tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] 9625[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] 9626tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] 9627[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] 9628tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] 9629[gw0] [ 80%] PASSED tests/shared/test_request_clock.py::test_the_clock_stops_and_resumes_on_asyncio 9630tests/shared/test_request_clock.py::test_a_wait_that_begins_after_the_budget_ran_out_does_not_swallow_the_timeout 9631[gw2] [ 80%] PASSED tests/server/mcpserver/test_server.py::test_static_resource_raising_resource_not_found_error_is_invalid_params_logged_at_info 9632tests/server/mcpserver/test_server.py::test_deliberate_resource_error_passes_its_message_through_and_is_logged_at_info 9633[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] 9634[gw0] [ 80%] PASSED tests/shared/test_request_clock.py::test_a_wait_that_begins_after_the_budget_ran_out_does_not_swallow_the_timeout 9635[gw1] [ 80%] PASSED tests/shared/test_streamable_http.py::test_content_type_validation 9636tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] 9637tests/shared/test_sse.py::test_raw_sse_connection 9638tests/shared/test_streamable_http.py::test_json_validation 9639[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] 9640tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] 9641[gw1] [ 80%] PASSED tests/shared/test_streamable_http.py::test_json_validation 9642tests/shared/test_streamable_http.py::test_json_parsing 9643[gw0] [ 80%] PASSED tests/shared/test_sse.py::test_raw_sse_connection 9644[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] 9645tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] 9646[gw3] [ 80%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] 9647tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname 9648tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list 9649[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname 9650[gw0] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list 9651tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier 9652[gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_json_parsing 9653tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] 9654[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] 9655tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] 9656tests/shared/test_streamable_http.py::test_method_not_allowed 9657[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] 9658tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] 9659[gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_method_not_allowed 9660[gw0] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier 9661tests/shared/test_streamable_http.py::test_session_validation 9662[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] 9663tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] 9664[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] 9665tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] 9666tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] 9667[gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_session_validation 9668[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] 9669[gw0] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] 9670tests/shared/test_streamable_http.py::test_session_id_pattern 9671tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] 9672[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] 9673[gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_session_id_pattern 9674tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated 9675tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] 9676[gw0] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] 9677tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] 9678[gw0] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] 9679tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] 9680tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] 9681[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] 9682tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings 9683[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings 9684tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error 9685[gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated 9686tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating 9687[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error 9688[gw0] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] 9689tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] 9690tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] 9691[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] 9692tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] 9693[gw0] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] 9694[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] 9695tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] 9696[gw2] [ 81%] PASSED tests/server/mcpserver/test_server.py::test_deliberate_resource_error_passes_its_message_through_and_is_logged_at_info 9697tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] 9698tests/server/mcpserver/test_server.py::test_prompt_raising_unexpected_exception_is_logged_once 9699[gw0] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] 9700[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] 9701tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] 9702[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] 9703tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] 9704[gw0] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] 9705tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] 9706tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] 9707[gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating 9708[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] 9709[gw0] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] 9710tests/shared/test_streamable_http.py::test_session_termination 9711tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] 9712tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] 9713[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] 9714[gw0] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] 9715tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] 9716tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] 9717[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] 9718[gw0] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] 9719tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] 9720tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] 9721[gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_session_termination 9722tests/shared/test_streamable_http.py::test_response 9723[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] 9724tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] 9725[gw0] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] 9726[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] 9727tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] 9728tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] 9729[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] 9730[gw0] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] 9731tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] 9732[gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_response 9733[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] 9734tests/shared/test_streamable_http.py::test_json_response 9735tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] 9736tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] 9737[gw0] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] 9738tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] 9739[gw2] [ 81%] PASSED tests/server/mcpserver/test_server.py::test_prompt_raising_unexpected_exception_is_logged_once 9740[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] 9741tests/server/mcpserver/test_server.py::test_call_tool_wraps_a_crash_as_unexpected_tool_error_chained_to_the_original 9742tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] 9743[gw0] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] 9744[gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_json_response 9745[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] 9746tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] 9747tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions 9748[gw0] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] 9749tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] 9750tests/shared/test_streamable_http.py::test_json_response_accept_json_only 9751[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions 9752tests/shared/test_uri_template.py::test_parse_rejects_oversized_template 9753[gw2] [ 81%] PASSED tests/server/mcpserver/test_server.py::test_call_tool_wraps_a_crash_as_unexpected_tool_error_chained_to_the_original 9754tests/server/mcpserver/test_server.py::test_call_tool_keeps_a_deliberate_tool_error_a_plain_tool_error 9755[gw0] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] 9756[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_oversized_template 9757tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables 9758[gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_json_response_accept_json_only 9759tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] 9760[gw2] [ 81%] PASSED tests/server/mcpserver/test_server.py::test_call_tool_keeps_a_deliberate_tool_error_a_plain_tool_error 9761[gw3] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables 9762tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions 9763tests/shared/test_streamable_http.py::test_json_response_missing_accept_header 9764[gw0] [ 81%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] 9765tests/server/mcpserver/test_server.py::test_nested_tool_crash_stays_unexpected_through_the_outer_tool 9766[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions 9767tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger 9768tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] 9769[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger 9770tests/shared/test_uri_template.py::test_equality_based_on_template_string 9771[gw1] [ 82%] PASSED tests/shared/test_streamable_http.py::test_json_response_missing_accept_header 9772[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] 9773tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header 9774tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] 9775[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_equality_based_on_template_string 9776tests/shared/test_uri_template.py::test_frozen 9777[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_frozen 9778[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] 9779tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] 9780tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] 9781[gw1] [ 82%] PASSED tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header 9782[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] 9783tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] 9784[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] 9785tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] 9786tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] 9787[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] 9788tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] 9789[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] 9790tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] 9791[gw1] [ 82%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] 9792tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] 9793[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] 9794tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] 9795[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] 9796[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] 9797tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] 9798tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] 9799[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] 9800tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] 9801[gw1] [ 82%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] 9802tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] 9803[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] 9804tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] 9805[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] 9806tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] 9807[gw1] [ 82%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] 9808[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] 9809tests/shared/test_streamable_http.py::test_get_sse_stream 9810[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] 9811tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] 9812[gw2] [ 82%] PASSED tests/server/mcpserver/test_server.py::test_nested_tool_crash_stays_unexpected_through_the_outer_tool 9813tests/server/mcpserver/test_server.py::test_context_exposes_client_capabilities_from_connection 9814tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] 9815[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] 9816tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] 9817[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] 9818[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] 9819tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] 9820tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] 9821[gw2] [ 82%] PASSED tests/server/mcpserver/test_server.py::test_context_exposes_client_capabilities_from_connection 9822tests/server/mcpserver/test_server.py::test_context_input_responses_and_request_state_are_none_on_initial_round 9823[gw1] [ 82%] PASSED tests/shared/test_streamable_http.py::test_get_sse_stream 9824[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] 9825[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] 9826tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] 9827tests/shared/test_streamable_http.py::test_get_validation 9828tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] 9829[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] 9830tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] 9831[gw2] [ 82%] PASSED tests/server/mcpserver/test_server.py::test_context_input_responses_and_request_state_are_none_on_initial_round 9832[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] 9833tests/server/mcpserver/test_server.py::test_context_notify_methods_publish_to_the_configured_bus 9834tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] 9835[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] 9836tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] 9837[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] 9838[gw1] [ 82%] PASSED tests/shared/test_streamable_http.py::test_get_validation 9839tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init 9840[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] 9841tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] 9842tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] 9843[gw2] [ 82%] PASSED tests/server/mcpserver/test_server.py::test_context_notify_methods_publish_to_the_configured_bus 9844[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] 9845tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] 9846tests/server/mcpserver/test_server.py::test_programmatic_entry_points_carry_the_subscription_bus 9847[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] 9848[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] 9849tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] 9850[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] 9851tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] 9852[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] 9853tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] 9854tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] 9855[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] 9856[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] 9857tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] 9858[gw2] [ 82%] PASSED tests/server/mcpserver/test_server.py::test_programmatic_entry_points_carry_the_subscription_bus 9859tests/server/mcpserver/test_server.py::test_server_advertises_change_notifications_on_the_modern_wire_by_default 9860[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] 9861tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] 9862tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] 9863[gw1] [ 82%] PASSED tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init 9864tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header 9865[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] 9866[gw2] [ 82%] PASSED tests/server/mcpserver/test_server.py::test_server_advertises_change_notifications_on_the_modern_wire_by_default 9867tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] 9868[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] 9869tests/server/mcpserver/test_server.py::test_subscriptions_false_neither_advertises_nor_serves_listen 9870tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] 9871[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] 9872[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] 9873tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] 9874tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] 9875[gw2] [ 82%] PASSED tests/server/mcpserver/test_server.py::test_subscriptions_false_neither_advertises_nor_serves_listen 9876[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] 9877[gw3] [ 82%] PASSED tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] 9878tests/server/mcpserver/test_server.py::test_notify_still_succeeds_when_subscriptions_are_off 9879tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] 9880tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] 9881[gw1] [ 82%] PASSED tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header 9882[gw0] [ 82%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] 9883tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version 9884[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] 9885tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] 9886tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] 9887[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] 9888[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] 9889tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] 9890tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] 9891[gw2] [ 83%] PASSED tests/server/mcpserver/test_server.py::test_notify_still_succeeds_when_subscriptions_are_off 9892tests/server/mcpserver/test_server.py::test_context_mcp_server_outside_request_raises 9893[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] 9894[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] 9895tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] 9896tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] 9897[gw2] [ 83%] PASSED tests/server/mcpserver/test_server.py::test_context_mcp_server_outside_request_raises 9898tests/server/mcpserver/test_server.py::test_context_request_context_outside_request_raises 9899[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] 9900[gw1] [ 83%] PASSED tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version 9901[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] 9902[gw2] [ 83%] PASSED tests/server/mcpserver/test_server.py::test_context_request_context_outside_request_raises 9903tests/shared/test_streamable_http.py::test_client_crash_handled 9904tests/server/mcpserver/test_server.py::test_context_notify_outside_a_request_raises 9905tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] 9906tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] 9907[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] 9908[gw2] [ 83%] PASSED tests/server/mcpserver/test_server.py::test_context_notify_outside_a_request_raises 9909tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] 9910[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] 9911tests/server/mcpserver/test_server.py::test_context_exposes_its_mcp_server 9912tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] 9913[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] 9914[gw2] [ 83%] PASSED tests/server/mcpserver/test_server.py::test_context_exposes_its_mcp_server 9915tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] 9916[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] 9917tests/shared/test_inbound.py::test_validate_mcp_param_headers_union_typed_annotation_invalidates_the_whole_tool 9918tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] 9919[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] 9920tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] 9921[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] 9922tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] 9923[gw2] [ 83%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_union_typed_annotation_invalidates_the_whole_tool 9924[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] 9925tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] 9926tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_the_clients_own_rendering_of_large_integral_floats 9927[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] 9928[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] 9929tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] 9930[gw2] [ 83%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_accepts_the_clients_own_rendering_of_large_integral_floats 9931tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] 9932[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] 9933tests/shared/test_inbound.py::test_validate_mcp_param_headers_handles_unrenderable_huge_integer_bodies_without_raising 9934[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] 9935[gw2] [ 83%] PASSED tests/shared/test_inbound.py::test_validate_mcp_param_headers_handles_unrenderable_huge_integer_bodies_without_raising 9936tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] 9937tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] 9938tests/shared/test_inbound.py::test_mcp_param_headers_omits_values_with_no_scalar_rendering 9939[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] 9940[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] 9941tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] 9942tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] 9943[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] 9944[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] 9945[gw2] [ 83%] PASSED tests/shared/test_inbound.py::test_mcp_param_headers_omits_values_with_no_scalar_rendering 9946tests/shared/test_inbound.py::test_find_duplicated_routing_header_detects_repeats_of_routing_headers_only 9947tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] 9948tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] 9949[gw2] [ 83%] PASSED tests/shared/test_inbound.py::test_find_duplicated_routing_header_detects_repeats_of_routing_headers_only 9950[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] 9951tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] 9952[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] 9953tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] 9954tests/shared/test_jsonrpc_dispatcher.py::test_concurrent_send_raw_requests_correlate_by_id_when_responses_arrive_out_of_order 9955[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] 9956tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] 9957[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] 9958[gw2] [ 83%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_concurrent_send_raw_requests_correlate_by_id_when_responses_arrive_out_of_order 9959tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_exception_sends_code_zero_with_str_message 9960tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] 9961[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] 9962tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] 9963[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] 9964tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] 9965[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] 9966tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] 9967[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] 9968tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] 9969[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] 9970tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] 9971[gw1] [ 83%] PASSED tests/shared/test_streamable_http.py::test_client_crash_handled 9972[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] 9973tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] 9974tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data 9975[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] 9976tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] 9977[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] 9978[gw1] [ 83%] PASSED tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data 9979tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] 9980tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version 9981[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] 9982tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] 9983[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] 9984[gw1] [ 83%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version 9985tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] 9986tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version 9987[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] 9988tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] 9989[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] 9990tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] 9991[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] 9992[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] 9993tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] 9994[gw1] [ 83%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version 9995tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event 9996tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] 9997[gw0] [ 83%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] 9998[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] 9999tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] 10000tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] 10001[gw2] [ 83%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_exception_sends_code_zero_with_str_message 10002tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_interrupt_mode_interrupts_handler_and_writes_no_response 10003[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] 10004[gw1] [ 84%] PASSED tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event 10005tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context 10006tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] 10007[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] 10008tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] 10009[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] 10010[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] 10011tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] 10012tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] 10013[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] 10014[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] 10015tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] 10016tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] 10017[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] 10018[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] 10019tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] 10020tests/shared/test_uri_template.py::test_match_no_match[static-different] 10021[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[static-different] 10022tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] 10023[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] 10024[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] 10025tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] 10026tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] 10027[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] 10028[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] 10029tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] 10030tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] 10031[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] 10032tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] 10033[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] 10034tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] 10035[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] 10036tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] 10037[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] 10038[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] 10039tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] 10040tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] 10041[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] 10042[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] 10043tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] 10044tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash 10045[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash 10046[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] 10047tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once 10048tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] 10049[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once 10050tests/shared/test_uri_template.py::test_match_rejects_oversized_uri 10051[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] 10052tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] 10053[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_rejects_oversized_uri 10054[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] 10055tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit 10056tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items 10057[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items 10058[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit 10059tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal 10060tests/shared/test_uri_template.py::test_match_default_uri_length_limit 10061[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal 10062tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] 10063[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] 10064[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_default_uri_length_limit 10065tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] 10066tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment 10067[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] 10068tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] 10069[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment 10070tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] 10071[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] 10072tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] 10073[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] 10074tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] 10075[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] 10076tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] 10077[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] 10078tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] 10079[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] 10080tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] 10081[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] 10082[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] 10083tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] 10084tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 10085[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] 10086[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 10087tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] 10088tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] 10089[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] 10090[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] 10091tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] 10092tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] 10093[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] 10094[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] 10095tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] 10096tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] 10097[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] 10098[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] 10099tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] 10100tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] 10101[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] 10102tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] 10103[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] 10104tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] 10105[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] 10106tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] 10107[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] 10108tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] 10109[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] 10110tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] 10111[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] 10112[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] 10113tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] 10114tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] 10115[gw0] [ 84%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] 10116[gw2] [ 84%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_interrupt_mode_interrupts_handler_and_writes_no_response 10117tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] 10118[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] 10119tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] 10120tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_signal_mode_sets_event_and_drops_the_completed_handlers_result 10121[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] 10122tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] 10123[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] 10124tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] 10125[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] 10126[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] 10127tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] 10128tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] 10129[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] 10130[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] 10131tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] 10132tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] 10133[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] 10134tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] 10135[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] 10136tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] 10137[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] 10138tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] 10139[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] 10140tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] 10141[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] 10142tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] 10143[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] 10144[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] 10145tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] 10146tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal 10147[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] 10148[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal 10149tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] 10150tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template 10151[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] 10152tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] 10153[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template 10154tests/shared/test_uri_template.py::test_match_decodes_percent_encoding 10155[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] 10156tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] 10157[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_decodes_percent_encoding 10158tests/shared/test_uri_template.py::test_match_escapes_template_literals 10159[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] 10160[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_escapes_template_literals 10161tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] 10162tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] 10163[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] 10164[gw3] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] 10165tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty 10166tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] 10167[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty 10168tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template 10169[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] 10170tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] 10171[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template 10172tests/shared/test_uri_template.py::test_match_never_raises 10173[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] 10174tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] 10175[gw2] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_signal_mode_sets_event_and_drops_the_completed_handlers_result 10176[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] 10177tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[unmapped-exception] 10178tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] 10179[gw0] [ 85%] PASSED tests/shared/test_uri_template.py::test_match_never_raises 10180tests/test_examples.py::test_simple_echo 10181[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] 10182tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] 10183[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] 10184tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] 10185[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] 10186tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] 10187[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] 10188tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] 10189[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] 10190tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] 10191[gw0] [ 85%] PASSED tests/test_examples.py::test_simple_echo 10192tests/test_examples.py::test_complex_inputs 10193[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] 10194tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] 10195[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] 10196tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] 10197[gw2] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[unmapped-exception] 10198tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[mcp-error] 10199[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] 10200tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] 10201[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] 10202tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] 10203[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] 10204tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] 10205[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] 10206tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] 10207[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] 10208tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] 10209[gw0] [ 85%] PASSED tests/test_examples.py::test_complex_inputs 10210tests/test_examples.py::test_direct_call_tool_result_return 10211[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] 10212tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] 10213[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] 10214tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] 10215[gw2] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[mcp-error] 10216tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[hook-bug] 10217[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] 10218tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:138-140] 10219[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:138-140] 10220tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:166-168] 10221[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:166-168] 10222tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:172-175] 10223[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:172-175] 10224tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:189-191] 10225[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:189-191] 10226tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:231-233] 10227[gw0] [ 85%] PASSED tests/test_examples.py::test_direct_call_tool_result_return 10228tests/test_examples.py::test_desktop 10229[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:231-233] 10230tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:246-254] 10231[gw1] [ 85%] PASSED tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context 10232tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection 10233[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:246-254] 10234tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:289-291] 10235[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:289-291] 10236tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:305-309] 10237[gw2] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[hook-bug] 10238tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[connection-closing] 10239[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:305-309] 10240tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:334-336] 10241[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:334-336] 10242tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:338-342] 10243[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:338-342] 10244tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:350-352] 10245[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:350-352] 10246tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:360-362] 10247[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:360-362] 10248tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:379-383] 10249[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:379-383] 10250[gw0] [ 86%] PASSED tests/test_examples.py::test_desktop 10251tests/test_examples.py::test_docs_examples[README.md:47-63] 10252tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:405-407] 10253[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[README.md:47-63] 10254tests/test_examples.py::test_docs_examples[README.md:90-103] 10255[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:405-407] 10256tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] 10257[gw2] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[connection-closing] 10258tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_raises_connection_closed_when_read_stream_eofs_mid_await 10259[gw2] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_raises_connection_closed_when_read_stream_eofs_mid_await 10260tests/shared/test_jsonrpc_dispatcher.py::test_run_returns_cleanly_when_read_stream_receive_end_is_closed 10261[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[README.md:90-103] 10262[gw2] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_returns_cleanly_when_read_stream_receive_end_is_closed 10263[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] 10264tests/shared/test_jsonrpc_dispatcher.py::test_run_cancels_in_flight_handlers_when_read_stream_eofs 10265tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] 10266tests/test_examples.py::test_docs_examples[docs/index.md:43-45] 10267[gw2] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_cancels_in_flight_handlers_when_read_stream_eofs 10268tests/shared/test_jsonrpc_dispatcher.py::test_run_closes_write_stream_on_exit 10269[gw2] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_run_closes_write_stream_on_exit 10270tests/shared/test_jsonrpc_dispatcher.py::test_late_response_after_timeout_is_dropped_without_crashing 10271[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/index.md:43-45] 10272[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] 10273tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] 10274tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] 10275[gw2] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_late_response_after_timeout_is_dropped_without_crashing 10276tests/shared/test_jsonrpc_dispatcher.py::test_raise_handler_exceptions_true_propagates_out_of_run 10277[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] 10278[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] 10279tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] 10280tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] 10281[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] 10282[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] 10283[gw2] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_raise_handler_exceptions_true_propagates_out_of_run 10284tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] 10285tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] 10286tests/shared/test_jsonrpc_dispatcher.py::test_ctx_send_raw_request_tags_outbound_with_server_message_metadata 10287[gw2] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_send_raw_request_tags_outbound_with_server_message_metadata 10288tests/shared/test_jsonrpc_dispatcher.py::test_courtesy_cancel_on_timeout_tags_outbound_with_server_message_metadata 10289[gw2] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_courtesy_cancel_on_timeout_tags_outbound_with_server_message_metadata 10290tests/shared/test_jsonrpc_dispatcher.py::test_dispatch_context_request_with_dropped_resumption_hints_still_sends_courtesy_cancel 10291[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] 10292[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] 10293tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] 10294tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] 10295[gw2] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_dispatch_context_request_with_dropped_resumption_hints_still_sends_courtesy_cancel 10296tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_sends_courtesy_cancellation_on_the_wire 10297[gw2] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_sends_courtesy_cancellation_on_the_wire 10298tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_blocked_request_write_still_sends_courtesy_cancellation 10299[gw2] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_blocked_request_write_still_sends_courtesy_cancellation 10300tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation 10301[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] 10302[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] 10303tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] 10304tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] 10305[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] 10306[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] 10307tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] 10308tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] 10309[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] 10310tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] 10311[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] 10312tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] 10313[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] 10314tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] 10315[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] 10316tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] 10317[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] 10318tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] 10319[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] 10320tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] 10321[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] 10322tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] 10323[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] 10324tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] 10325[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] 10326tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] 10327[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] 10328tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] 10329[gw2] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation 10330tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation 10331[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] 10332[gw2] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation 10333tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] 10334tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation 10335[gw2] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation 10336[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] 10337tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation 10338tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] 10339[gw2] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation 10340tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout 10341[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] 10342tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] 10343[gw2] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout 10344tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set 10345[gw2] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set 10346tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10347[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] 10348tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] 10349[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] 10350[gw2] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10351tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] 10352tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10353[gw2] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10354tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10355[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] 10356[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] 10357[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 10358tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] 10359tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] 10360tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed 10361[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed 10362tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer 10363[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] 10364[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] 10365tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] 10366tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] 10367[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] 10368[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] 10369tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] 10370tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] 10371[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] 10372[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] 10373tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] 10374tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] 10375[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] 10376[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] 10377tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] 10378tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] 10379[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] 10380tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] 10381[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] 10382tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] 10383[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] 10384[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] 10385tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] 10386tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:13-15] 10387[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] 10388tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] 10389[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:13-15] 10390[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer 10391tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:29-31] 10392tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry 10393[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry 10394tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed 10395[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] 10396tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] 10397[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/cancellation.md:29-31] 10398[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed 10399tests/shared/test_jsonrpc_dispatcher.py::test_notify_after_connection_close_is_dropped_with_debug_log 10400tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] 10401[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] 10402[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] 10403tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] 10404tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] 10405[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_after_connection_close_is_dropped_with_debug_log 10406tests/shared/test_jsonrpc_dispatcher.py::test_notify_on_torn_down_transport_is_dropped_with_debug_log 10407[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] 10408[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] 10409tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] 10410tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] 10411[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] 10412[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] 10413tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] 10414tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] 10415[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_on_torn_down_transport_is_dropped_with_debug_log 10416tests/shared/test_jsonrpc_dispatcher.py::test_notification_handler_exception_is_contained 10417[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] 10418[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] 10419tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] 10420tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] 10421[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] 10422[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] 10423tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] 10424tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] 10425[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notification_handler_exception_is_contained 10426tests/shared/test_jsonrpc_dispatcher.py::test_spawned_notification_handlers_run_concurrently 10427[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_spawned_notification_handlers_run_concurrently 10428tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_request_metadata 10429[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_request_metadata 10430[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] 10431tests/shared/test_jsonrpc_dispatcher.py::test_transport_stamped_can_send_request_makes_the_request_channel_refuse 10432[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] 10433tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] 10434tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] 10435[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_stamped_can_send_request_makes_the_request_channel_refuse 10436tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_notification_metadata 10437[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_notification_metadata 10438tests/shared/test_jsonrpc_dispatcher.py::test_ctx_progress_with_only_progress_value_omits_total_and_message 10439[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] 10440[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_progress_with_only_progress_value_omits_total_and_message 10441[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] 10442tests/shared/test_jsonrpc_dispatcher.py::test_ctx_after_handler_return_reports_closed_and_drops_backchannel_traffic 10443tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] 10444tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] 10445[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_after_handler_return_reports_closed_and_drops_backchannel_traffic 10446tests/shared/test_jsonrpc_dispatcher.py::test_inline_methods_are_handled_before_next_message_is_dequeued 10447[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_inline_methods_are_handled_before_next_message_is_dequeued 10448tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_omits_empty_meta_and_empty_params_on_the_wire 10449[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] 10450[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_omits_empty_meta_and_empty_params_on_the_wire 10451tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_merges_progress_token_into_caller_meta 10452tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] 10453[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] 10454tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] 10455[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_merges_progress_token_into_caller_meta 10456tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_validation_error_sends_invalid_params 10457[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_raising_validation_error_sends_invalid_params 10458tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_before_run_raises_runtimeerror 10459[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] 10460tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] 10461[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_before_run_raises_runtimeerror 10462tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_after_connection_close_raises_connection_closed 10463[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] 10464tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] 10465[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_after_connection_close_raises_connection_closed 10466tests/shared/test_jsonrpc_dispatcher.py::test_transport_exception_in_read_stream_is_logged_and_dropped 10467[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_exception_in_read_stream_is_logged_and_dropped 10468tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observes_transport_exceptions 10469[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] 10470tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] 10471[gw2] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observes_transport_exceptions 10472tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observer_raising_is_contained 10473[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] 10474tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] 10475[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] 10476tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] 10477[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] 10478tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] 10479[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] 10480[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_on_stream_exception_observer_raising_is_contained 10481tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] 10482tests/shared/test_jsonrpc_dispatcher.py::test_progress_notification_for_unknown_token_falls_through_to_on_notify 10483[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] 10484tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] 10485[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_notification_for_unknown_token_falls_through_to_on_notify 10486tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_unknown_request_id_skips_cancel_but_reaches_on_notify 10487[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_unknown_request_id_skips_cancel_but_reaches_on_notify 10488tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_in_flight_request_is_teed_to_on_notify 10489[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] 10490[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_notification_for_in_flight_request_is_teed_to_on_notify 10491tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[spawned] 10492tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] 10493[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] 10494[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[spawned] 10495tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[inline] 10496tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] 10497[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_handler_inherits_sender_contextvars[inline] 10498tests/shared/test_jsonrpc_dispatcher.py::test_response_write_after_peer_drop_is_swallowed 10499[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] 10500[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_response_write_after_peer_drop_is_swallowed 10501tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] 10502tests/shared/test_jsonrpc_dispatcher.py::test_cancel_outbound_after_write_stream_closed_is_swallowed 10503[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_outbound_after_write_stream_closed_is_swallowed 10504tests/shared/test_jsonrpc_dispatcher.py::test_resolve_pending_drops_outcome_when_waiter_stream_already_closed 10505[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] 10506[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_resolve_pending_drops_outcome_when_waiter_stream_already_closed 10507tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] 10508tests/shared/test_jsonrpc_dispatcher.py::test_fan_out_closed_drops_signal_when_waiter_already_has_outcome 10509[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_fan_out_closed_drops_signal_when_waiter_already_has_outcome 10510tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_resumption_token_returns_client_metadata_and_suppresses_abandon_cancel 10511[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] 10512[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_resumption_token_returns_client_metadata_and_suppresses_abandon_cancel 10513tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_projects_opts_headers_onto_message_metadata 10514tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] 10515[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_send_raw_request_projects_opts_headers_onto_message_metadata 10516tests/shared/test_jsonrpc_dispatcher.py::test_response_with_string_id_correlates_to_int_keyed_pending_request 10517[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] 10518tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] 10519[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_response_with_string_id_correlates_to_int_keyed_pending_request 10520tests/shared/test_jsonrpc_dispatcher.py::test_error_response_with_string_id_correlates_to_int_keyed_pending_request 10521[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] 10522tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] 10523[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_error_response_with_string_id_correlates_to_int_keyed_pending_request 10524tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request 10525[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request 10526[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] 10527tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int 10528tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] 10529[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int 10530tests/shared/test_jsonrpc_dispatcher.py::test_jsonrpc_error_response_with_null_id_is_dropped 10531[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_jsonrpc_error_response_with_null_id_is_dropped 10532[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] 10533tests/shared/test_jsonrpc_dispatcher.py::test_notify_without_params_omits_params_key_on_the_wire 10534tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] 10535[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_without_params_omits_params_key_on_the_wire 10536tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_request_is_answered_with_internal_error 10537[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] 10538tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] 10539[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] 10540tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] 10541[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] 10542tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] 10543[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] 10544tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] 10545[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_request_is_answered_with_internal_error 10546tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_notification_drops_only_that_notification 10547[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] 10548tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] 10549[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] 10550tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] 10551[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] 10552tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] 10553[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] 10554[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_notification_drops_only_that_notification 10555tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_with_bool_request_id_does_not_cancel_request_one 10556tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] 10557[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_with_bool_request_id_does_not_cancel_request_one 10558tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_bool_token_or_bool_progress_does_not_fire_callback 10559[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] 10560[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_bool_token_or_bool_progress_does_not_fire_callback 10561tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] 10562tests/shared/test_jsonrpc_dispatcher.py::test_request_with_bool_meta_progress_token_is_not_adopted 10563[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] 10564tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] 10565[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_with_bool_meta_progress_token_is_not_adopted 10566tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[string-cancel-for-int-request] 10567[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[string-cancel-for-int-request] 10568tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[int-cancel-for-string-request] 10569[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] 10570[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_correlates_across_string_and_int_request_id_forms[int-cancel-for-string-request] 10571tests/shared/test_jsonrpc_dispatcher.py::test_completed_handler_does_not_evict_reused_request_id_from_in_flight 10572tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] 10573[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] 10574[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_completed_handler_does_not_evict_reused_request_id_from_in_flight 10575tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:104-132] 10576tests/shared/test_jsonrpc_dispatcher.py::test_duplicate_request_id_completion_of_first_handler_keeps_second_cancellable 10577[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_duplicate_request_id_completion_of_first_handler_keeps_second_cancellable 10578tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_related_request_id_drops_resumption_hints_but_keeps_abandon_cancel 10579[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] 10580[gw2] [ 88%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_plan_outbound_with_related_request_id_drops_resumption_hints_but_keeps_abandon_cancel 10581tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] 10582tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] 10583[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:104-132] 10584tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:140-149] 10585[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] 10586[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] 10587tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] 10588tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] 10589[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:140-149] 10590tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:155-157] 10591[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] 10592[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] 10593tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] 10594tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] 10595[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:155-157] 10596tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:169-171] 10597[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] 10598[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] 10599tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] 10600tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] 10601[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:169-171] 10602tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] 10603[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] 10604tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] 10605[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] 10606tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] 10607[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] 10608tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:65-67] 10609[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] 10610[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] 10611[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:65-67] 10612tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] 10613tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] 10614tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] 10615[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] 10616[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] 10617tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] 10618tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] 10619[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] 10620tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] 10621[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] 10622tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] 10623[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] 10624[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] 10625tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] 10626tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] 10627[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] 10628tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] 10629[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] 10630[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] 10631tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] 10632tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] 10633[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] 10634tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] 10635[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] 10636[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] 10637tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] 10638tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] 10639[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] 10640tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] 10641[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] 10642[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] 10643tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] 10644tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] 10645[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] 10646tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] 10647[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] 10648[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] 10649tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] 10650tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] 10651[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] 10652tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] 10653[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] 10654tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] 10655[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] 10656tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] 10657[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] 10658tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] 10659[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] 10660tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] 10661[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] 10662tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] 10663[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] 10664tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] 10665[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] 10666tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] 10667[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] 10668tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] 10669[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] 10670[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] 10671tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:11-13] 10672tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] 10673[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] 10674tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] 10675[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:11-13] 10676[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] 10677tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:27-29] 10678tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] 10679[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] 10680tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] 10681[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:27-29] 10682[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] 10683tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:35-37] 10684tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] 10685[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] 10686tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] 10687[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:35-37] 10688tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:45-47] 10689[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] 10690tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] 10691[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] 10692tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] 10693[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/header-parameters.md:45-47] 10694[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] 10695tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] 10696tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] 10697[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] 10698tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] 10699[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] 10700tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] 10701[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] 10702tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] 10703[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] 10704tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] 10705[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] 10706tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] 10707[gw3] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] 10708[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] 10709tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] 10710tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] 10711[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] 10712tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] 10713[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] 10714[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] 10715tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] 10716tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] 10717[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] 10718[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] 10719[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] 10720tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] 10721tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] 10722tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] 10723[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] 10724[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] 10725[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] 10726tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] 10727tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] 10728tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] 10729[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] 10730[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] 10731[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] 10732tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] 10733tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] 10734tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] 10735[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] 10736[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] 10737tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] 10738tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] 10739[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] 10740tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] 10741[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] 10742[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] 10743tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] 10744tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] 10745[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] 10746tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] 10747[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] 10748[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] 10749tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] 10750[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] 10751tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] 10752tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] 10753[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] 10754tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] 10755[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] 10756[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] 10757tests/test_types.py::test_jsonrpc_request 10758tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] 10759[gw2] [ 90%] PASSED tests/test_types.py::test_jsonrpc_request 10760tests/test_types.py::test_method_initialization 10761[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] 10762[gw2] [ 90%] PASSED tests/test_types.py::test_method_initialization 10763tests/test_types.py::test_tool_use_content 10764tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] 10765[gw2] [ 90%] PASSED tests/test_types.py::test_tool_use_content 10766tests/test_types.py::test_tool_result_content 10767[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] 10768[gw2] [ 90%] PASSED tests/test_types.py::test_tool_result_content 10769tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] 10770tests/test_types.py::test_tool_choice 10771[gw2] [ 90%] PASSED tests/test_types.py::test_tool_choice 10772tests/test_types.py::test_sampling_message_with_user_role 10773[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] 10774[gw2] [ 90%] PASSED tests/test_types.py::test_sampling_message_with_user_role 10775tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] 10776tests/test_types.py::test_sampling_message_with_assistant_role 10777[gw2] [ 90%] PASSED tests/test_types.py::test_sampling_message_with_assistant_role 10778tests/test_types.py::test_sampling_message_backward_compatibility 10779[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] 10780[gw2] [ 90%] PASSED tests/test_types.py::test_sampling_message_backward_compatibility 10781tests/test_types.py::test_create_message_request_params_with_tools 10782tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] 10783[gw2] [ 90%] PASSED tests/test_types.py::test_create_message_request_params_with_tools 10784tests/test_types.py::test_create_message_result_with_tool_use 10785[gw2] [ 90%] PASSED tests/test_types.py::test_create_message_result_with_tool_use 10786tests/test_types.py::test_create_message_result_basic 10787[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] 10788[gw2] [ 90%] PASSED tests/test_types.py::test_create_message_result_basic 10789tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] 10790tests/test_types.py::test_client_capabilities_with_sampling_tools 10791[gw2] [ 90%] PASSED tests/test_types.py::test_client_capabilities_with_sampling_tools 10792tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields 10793[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] 10794[gw2] [ 90%] PASSED tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields 10795tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields 10796[gw2] [ 90%] PASSED tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields 10797tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete 10798tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] 10799[gw2] [ 90%] PASSED tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete 10800tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private 10801[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] 10802[gw2] [ 90%] PASSED tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private 10803tests/test_types.py::test_empty_result_dumps_no_fields_by_default 10804tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] 10805[gw2] [ 90%] PASSED tests/test_types.py::test_empty_result_dumps_no_fields_by_default 10806tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged 10807[gw2] [ 90%] PASSED tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged 10808tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag 10809[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] 10810tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] 10811[gw2] [ 90%] PASSED tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag 10812tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state 10813[gw2] [ 90%] PASSED tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state 10814tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly 10815[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] 10816tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] 10817[gw2] [ 90%] PASSED tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly 10818tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] 10819[gw2] [ 90%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] 10820tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] 10821[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] 10822[gw2] [ 90%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] 10823tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] 10824tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] 10825[gw2] [ 90%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] 10826tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule 10827[gw3] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] 10828tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] 10829[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] 10830tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] 10831[gw3] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] 10832tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:67-69] 10833[gw0] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] 10834tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] 10835[gw3] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:67-69] 10836tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] 10837[gw0] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] 10838tests/test_examples.py::test_docs_examples[docs/client/transports.md:55-57] 10839[gw3] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] 10840tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] 10841[gw0] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:55-57] 10842tests/test_examples.py::test_docs_examples[docs/client/transports.md:111-113] 10843[gw3] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] 10844[gw0] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:111-113] 10845tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] 10846tests/test_examples.py::test_docs_examples[docs/client/transports.md:131-133] 10847[gw3] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] 10848tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] 10849[gw0] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:131-133] 10850tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] 10851[gw3] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] 10852tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages 10853[gw3] [ 91%] SKIPPED tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages 10854tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly 10855[gw0] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] 10856[gw3] [ 91%] SKIPPED tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly 10857tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version 10858tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing 10859[gw3] [ 91%] PASSED tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version 10860tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps 10861[gw0] [ 91%] PASSED tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing 10862[gw3] [ 91%] PASSED tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps 10863tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it 10864tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions 10865[gw0] [ 91%] PASSED tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions 10866[gw3] [ 91%] PASSED tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it 10867tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit 10868tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values 10869[gw0] [ 91%] PASSED tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit 10870tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders 10871[gw3] [ 91%] PASSED tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values 10872tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas 10873[gw3] [ 91%] PASSED tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas 10874tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas 10875[gw3] [ 91%] PASSED tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas 10876tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys 10877[gw3] [ 91%] PASSED tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys 10878tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions 10879[gw3] [ 91%] PASSED tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions 10880tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps 10881[gw3] [ 91%] PASSED tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps 10882tests/types/test_methods.py::test_built_in_maps_are_immutable 10883[gw3] [ 91%] PASSED tests/types/test_methods.py::test_built_in_maps_are_immutable 10884tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal 10885[gw3] [ 91%] PASSED tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal 10886tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms 10887[gw3] [ 91%] PASSED tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms 10888tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes 10889[gw3] [ 91%] PASSED tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes 10890tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row 10891[gw3] [ 91%] PASSED tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row 10892tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row 10893[gw3] [ 91%] PASSED tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row 10894tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row 10895[gw1] [ 91%] PASSED tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection 10896tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error 10897[gw3] [ 91%] PASSED tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row 10898tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step 10899[gw3] [ 91%] PASSED tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step 10900tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape 10901[gw3] [ 91%] PASSED tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape 10902tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function 10903[gw0] [ 91%] PASSED tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders 10904tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing 10905[gw3] [ 91%] PASSED tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function 10906tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing 10907[gw3] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing 10908tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info 10909[gw0] [ 91%] PASSED tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing 10910tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings 10911[gw1] [ 91%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error 10912[gw3] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info 10913tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error 10914tests/types/test_methods.py::test_2026_07_28_results_require_result_type 10915[gw0] [ 91%] PASSED tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings 10916tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] 10917[gw3] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_results_require_result_type 10918tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it 10919[gw1] [ 91%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error 10920[gw0] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] 10921tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] 10922[gw3] [ 91%] PASSED tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it 10923tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions 10924tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] 10925[gw1] [ 91%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] 10926[gw3] [ 91%] PASSED tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions 10927[gw0] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] 10928tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] 10929tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] 10930tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step 10931[gw1] [ 91%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] 10932[gw0] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] 10933tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] 10934[gw3] [ 91%] PASSED tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step 10935tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] 10936tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 10937[gw1] [ 91%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] 10938[gw0] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] 10939tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] 10940[gw3] [ 91%] PASSED tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 10941tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject 10942tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] 10943[gw0] [ 91%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] 10944[gw3] [ 91%] PASSED tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject 10945[gw1] [ 91%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] 10946tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] 10947tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] 10948tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] 10949[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] 10950[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] 10951tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] 10952tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] 10953[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] 10954tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] 10955[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] 10956[gw1] [ 92%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] 10957tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] 10958tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] 10959[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] 10960[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] 10961tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] 10962tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] 10963[gw1] [ 92%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] 10964tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] 10965[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] 10966[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] 10967tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] 10968tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] 10969[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] 10970[gw1] [ 92%] PASSED tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] 10971[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] 10972tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] 10973tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] 10974tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] 10975[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] 10976[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] 10977tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] 10978[gw1] [ 92%] PASSED tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] 10979tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] 10980tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] 10981[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] 10982[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] 10983tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] 10984[gw1] [ 92%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] 10985tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] 10986tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] 10987[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] 10988[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] 10989tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] 10990[gw1] [ 92%] PASSED tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] 10991tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] 10992tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] 10993[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] 10994tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] 10995[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] 10996tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] 10997[gw1] [ 92%] PASSED tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] 10998tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] 10999[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] 11000[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] 11001tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] 11002tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] 11003[gw1] [ 92%] PASSED tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] 11004tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] 11005[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] 11006[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] 11007tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] 11008tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] 11009[gw1] [ 92%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] 11010tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] 11011[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] 11012[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] 11013tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] 11014[gw1] [ 92%] PASSED tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] 11015tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] 11016tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple 11017[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] 11018[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] 11019tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] 11020[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] 11021tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] 11022[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] 11023tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] 11024[gw0] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] 11025tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] 11026[gw1] [ 92%] PASSED tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple 11027tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved 11028[gw1] [ 92%] PASSED tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved 11029tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] 11030[gw1] [ 92%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] 11031tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] 11032tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] 11033[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] 11034[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] 11035tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] 11036[gw3] [ 92%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] 11037tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] 11038[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] 11039tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] 11040[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] 11041tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] 11042tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] 11043[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] 11044[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] 11045tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] 11046[gw1] [ 92%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] 11047tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] 11048[gw1] [ 92%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] 11049tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] 11050tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] 11051[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] 11052tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] 11053[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] 11054tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] 11055[gw1] [ 92%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] 11056tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] 11057[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] 11058[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] 11059tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] 11060tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] 11061[gw1] [ 92%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] 11062tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] 11063[gw0] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] 11064[gw3] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] 11065tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] 11066tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] 11067[gw1] [ 92%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] 11068tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] 11069[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] 11070[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] 11071tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] 11072tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] 11073[gw1] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] 11074tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] 11075[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] 11076tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] 11077[gw1] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] 11078[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] 11079tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] 11080[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] 11081tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] 11082[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] 11083tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-11-25] 11084[gw1] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] 11085tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-03-26] 11086[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-03-26] 11087tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] 11088[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-11-25] 11089tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2024-11-05] 11090[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2024-11-05] 11091tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-06-18] 11092[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-06-18] 11093[gw1] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] 11094tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] 11095tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-11-25] 11096[gw1] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] 11097tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-03-26] 11098[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-03-26] 11099tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] 11100[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-11-25] 11101tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2024-11-05] 11102tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-06-18] 11103[gw1] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] 11104tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] 11105[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2024-11-05] 11106tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-03-26] 11107[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-06-18] 11108tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-11-25] 11109[gw1] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] 11110[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-11-25] 11111tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2024-11-05] 11112[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-03-26] 11113tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-06-18] 11114tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] 11115[gw1] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] 11116tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] 11117[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-06-18] 11118tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-11-25] 11119[gw3] [ 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] 11120tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-03-26] 11121[gw1] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] 11122[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-11-25] 11123tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] 11124[gw3] [ 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] 11125tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2024-11-05] 11126tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-06-18] 11127[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2024-11-05] 11128[gw3] [ 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] 11129tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-03-26] 11130[gw1] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] 11131tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] 11132tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-11-25] 11133[gw1] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] 11134[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-03-26] 11135[gw3] [ 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] 11136tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-06-18] 11137tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] 11138tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] 11139[gw1] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] 11140tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] 11141[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-06-18] 11142tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-11-25] 11143[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] 11144tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] 11145[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-11-25] 11146[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] 11147tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2024-11-05] 11148tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] 11149[gw1] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] 11150tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] 11151[gw1] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] 11152tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] 11153[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] 11154[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2024-11-05] 11155tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-03-26] 11156tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] 11157[gw1] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] 11158[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] 11159tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] 11160[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-03-26] 11161tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-06-18] 11162tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2024-11-05] 11163[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-06-18] 11164tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 11165[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2024-11-05] 11166tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] 11167[gw1] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] 11168[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 11169tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] 11170tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] 11171[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] 11172tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] 11173[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] 11174tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] 11175[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] 11176[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] 11177tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] 11178[gw1] [ 93%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] 11179tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] 11180tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] 11181[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] 11182[gw3] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] 11183tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] 11184tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] 11185[gw0] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] 11186[gw1] [ 94%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] 11187tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] 11188[gw3] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] 11189tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] 11190tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] 11191[gw0] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] 11192tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras 11193[gw3] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] 11194tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] 11195[gw0] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras 11196tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp 11197[gw3] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] 11198tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] 11199[gw1] [ 94%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] 11200[gw0] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp 11201tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] 11202tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field 11203[gw3] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] 11204tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] 11205[gw0] [ 94%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field 11206tests/types/test_methods.py::test_serialize_server_result_raises_key_error_for_an_absent_row_and_value_error_for_an_unknown_version 11207[gw1] [ 94%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] 11208[gw0] [ 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 11209[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] 11210tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] 11211tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one 11212tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] 11213[gw0] [ 94%] PASSED tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one 11214[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] 11215tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] 11216[gw1] [ 94%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] 11217tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] 11218tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] 11219[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] 11220[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] 11221tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] 11222[gw1] [ 94%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] 11223tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] 11224tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] 11225[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] 11226[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] 11227tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] 11228[gw1] [ 94%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] 11229tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] 11230[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] 11231tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] 11232[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] 11233tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] 11234tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] 11235[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] 11236[gw1] [ 94%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] 11237[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] 11238tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] 11239tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] 11240tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] 11241[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] 11242tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] 11243[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] 11244tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] 11245[gw1] [ 94%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] 11246tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] 11247[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] 11248tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] 11249[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] 11250tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] 11251[gw1] [ 94%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] 11252tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] 11253[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] 11254tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] 11255[gw1] [ 94%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] 11256[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] 11257tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] 11258tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] 11259[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] 11260tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] 11261[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] 11262tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] 11263[gw1] [ 94%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] 11264tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] 11265[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] 11266tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] 11267[gw1] [ 94%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] 11268[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] 11269tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] 11270tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] 11271[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] 11272[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] 11273tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] 11274[gw1] [ 94%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] 11275tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] 11276tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] 11277[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] 11278tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] 11279[gw1] [ 94%] PASSED tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] 11280[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] 11281tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] 11282tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] 11283[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] 11284tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] 11285[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] 11286[gw1] [ 94%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] 11287tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] 11288tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] 11289[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] 11290tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] 11291[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] 11292[gw1] [ 94%] PASSED tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] 11293[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] 11294tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] 11295tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] 11296tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] 11297[gw1] [ 94%] PASSED tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] 11298[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] 11299tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] 11300tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] 11301[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] 11302tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] 11303[gw3] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] 11304[gw1] [ 95%] PASSED tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] 11305tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] 11306tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] 11307[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] 11308tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] 11309[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] 11310[gw1] [ 95%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] 11311tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] 11312tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] 11313[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] 11314[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] 11315[gw1] [ 95%] PASSED tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] 11316tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] 11317tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] 11318tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] 11319[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] 11320[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] 11321tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] 11322tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] 11323[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] 11324[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] 11325tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] 11326[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] 11327tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] 11328tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] 11329[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] 11330[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] 11331[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] 11332tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] 11333tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] 11334tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] 11335[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] 11336[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] 11337tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] 11338[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] 11339tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] 11340[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] 11341tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] 11342tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] 11343[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] 11344[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] 11345tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] 11346tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] 11347[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] 11348tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] 11349[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] 11350tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] 11351[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] 11352[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] 11353tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] 11354[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] 11355tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] 11356[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] 11357tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] 11358[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] 11359tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] 11360tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] 11361[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] 11362tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] 11363[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] 11364[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] 11365tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] 11366[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] 11367tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] 11368tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] 11369[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] 11370[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] 11371tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] 11372[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] 11373tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] 11374tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] 11375[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] 11376[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] 11377[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] 11378tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] 11379tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] 11380tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] 11381[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] 11382[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] 11383tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] 11384[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] 11385tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] 11386[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] 11387tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] 11388[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] 11389tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] 11390[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] 11391[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] 11392tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] 11393tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] 11394[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] 11395tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] 11396[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] 11397tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] 11398[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] 11399tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] 11400[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] 11401tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] 11402tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] 11403[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] 11404tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] 11405[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] 11406[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] 11407tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] 11408tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] 11409[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] 11410tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] 11411[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] 11412tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] 11413[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] 11414tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] 11415[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] 11416tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] 11417[gw3] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] 11418[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] 11419[gw1] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] 11420tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] 11421tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] 11422tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] 11423[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] 11424tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] 11425[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] 11426[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] 11427tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] 11428tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] 11429[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] 11430[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] 11431tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] 11432tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] 11433[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] 11434tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] 11435[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] 11436[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] 11437[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] 11438tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] 11439tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] 11440tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] 11441[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] 11442[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] 11443[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] 11444tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] 11445tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] 11446tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] 11447[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] 11448[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] 11449[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] 11450tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] 11451tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] 11452tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] 11453[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] 11454[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] 11455[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] 11456tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] 11457tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] 11458tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] 11459[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] 11460tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] 11461[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] 11462tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] 11463[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] 11464tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] 11465[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] 11466[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] 11467tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] 11468tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] 11469[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] 11470tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] 11471[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] 11472tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] 11473[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] 11474[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] 11475tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] 11476[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] 11477tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] 11478tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] 11479[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] 11480tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] 11481[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] 11482tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] 11483[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] 11484tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] 11485[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] 11486tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] 11487[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] 11488[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] 11489tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] 11490[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] 11491tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] 11492[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] 11493tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] 11494[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] 11495tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] 11496[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] 11497tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] 11498[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] 11499tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] 11500[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] 11501tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] 11502tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] 11503[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] 11504tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] 11505[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] 11506tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] 11507[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] 11508[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] 11509tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] 11510[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] 11511tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] 11512tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] 11513[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] 11514[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] 11515tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] 11516tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] 11517[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] 11518[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] 11519[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] 11520tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] 11521tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] 11522tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] 11523[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] 11524tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] 11525[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] 11526[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] 11527tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] 11528tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] 11529[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] 11530tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] 11531[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] 11532tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] 11533[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] 11534tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] 11535[gw3] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] 11536[gw1] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] 11537tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] 11538[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] 11539tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] 11540[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] 11541tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] 11542[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] 11543tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] 11544tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] 11545[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] 11546[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] 11547tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] 11548tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] 11549[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] 11550tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] 11551[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] 11552[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] 11553[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] 11554tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] 11555tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] 11556tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] 11557[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] 11558[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] 11559tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] 11560tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] 11561[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] 11562[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] 11563tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] 11564[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] 11565tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] 11566tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] 11567[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] 11568[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] 11569[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] 11570tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] 11571tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] 11572tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] 11573[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] 11574[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] 11575[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] 11576tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] 11577tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] 11578tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] 11579[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] 11580[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] 11581tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] 11582tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] 11583[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] 11584tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] 11585[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] 11586[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] 11587[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] 11588tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] 11589tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] 11590tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] 11591[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] 11592[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] 11593tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] 11594tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] 11595[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] 11596tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] 11597[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] 11598tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] 11599[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] 11600[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] 11601tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] 11602[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] 11603tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] 11604tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] 11605[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] 11606[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] 11607[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] 11608tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] 11609tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] 11610tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] 11611[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] 11612[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] 11613tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] 11614tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] 11615[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] 11616tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] 11617[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] 11618[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] 11619tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] 11620tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] 11621[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] 11622tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] 11623[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] 11624[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] 11625tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] 11626tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] 11627[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] 11628[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] 11629tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] 11630tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] 11631[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] 11632tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] 11633[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] 11634[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] 11635tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] 11636[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] 11637tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] 11638tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] 11639[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] 11640[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] 11641tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] 11642[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] 11643tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] 11644tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] 11645[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] 11646[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] 11647[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] 11648tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] 11649tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] 11650tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] 11651[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] 11652[gw3] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] 11653tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] 11654tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] 11655[gw1] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] 11656tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] 11657[gw0] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] 11658tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] 11659[gw3] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] 11660tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] 11661[gw1] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] 11662[gw0] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] 11663tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] 11664tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] 11665[gw3] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] 11666tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] 11667[gw1] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] 11668[gw0] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] 11669[gw3] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] 11670tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] 11671tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] 11672tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] 11673[gw0] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] 11674[gw3] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] 11675tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] 11676[gw1] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] 11677tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] 11678[gw1] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] 11679tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] 11680[gw0] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] 11681tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] 11682tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] 11683[gw3] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] 11684tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] 11685[gw0] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] 11686tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] 11687[gw1] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] 11688[gw3] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] 11689tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] 11690[gw0] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] 11691tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] 11692tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] 11693[gw1] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] 11694tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] 11695[gw3] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] 11696tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] 11697[gw1] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] 11698[gw0] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] 11699tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] 11700tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] 11701[gw3] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] 11702tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] 11703[gw1] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] 11704[gw0] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] 11705[gw3] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] 11706tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] 11707tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] 11708[gw1] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] 11709tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] 11710tests/types/test_parity.py::test_every_surface_class_is_accounted_for 11711[gw0] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] 11712tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] 11713[gw3] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] 11714[gw1] [ 98%] PASSED tests/types/test_parity.py::test_every_surface_class_is_accounted_for 11715[gw0] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] 11716tests/types/test_request_name_param.py::test_request_base_declares_no_name_param 11717tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field 11718tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] 11719[gw3] [ 98%] PASSED tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field 11720[gw1] [ 98%] PASSED tests/types/test_request_name_param.py::test_request_base_declares_no_name_param 11721tests/types/test_request_name_param.py::test_core_request_types_inherit_none 11722[gw0] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] 11723tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] 11724[gw1] [ 98%] PASSED tests/types/test_request_name_param.py::test_core_request_types_inherit_none 11725tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types 11726tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment 11727[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] 11728tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] 11729[gw0] [ 98%] PASSED tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types 11730[gw1] [ 98%] PASSED tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment 11731tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] 11732[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] 11733tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] 11734tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] 11735[gw1] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] 11736[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] 11737[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] 11738tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] 11739tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] 11740tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] 11741[gw1] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] 11742[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] 11743[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] 11744tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] 11745tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises 11746tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] 11747[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises 11748[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] 11749[gw1] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] 11750tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] 11751tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] 11752tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] 11753[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] 11754[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] 11755[gw1] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] 11756tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] 11757tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] 11758tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] 11759[gw1] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] 11760[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] 11761[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] 11762tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] 11763tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] 11764tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] 11765[gw1] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] 11766[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] 11767tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] 11768tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] 11769[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] 11770[gw1] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] 11771[gw3] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] 11772tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] 11773tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] 11774tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] 11775[gw0] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] 11776tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] 11777[gw3] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] 11778[gw1] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] 11779[gw0] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] 11780tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] 11781tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] 11782tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] 11783[gw3] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] 11784[gw1] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] 11785tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] 11786tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] 11787[gw0] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] 11788[gw1] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] 11789[gw3] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] 11790tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] 11791[gw0] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] 11792tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] 11793tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] 11794[gw1] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] 11795tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] 11796[gw3] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] 11797tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] 11798[gw0] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] 11799tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] 11800tests/types/test_version.py::test_supported_versions_are_known 11801[gw1] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] 11802[gw3] [ 99%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] 11803[gw0] [ 99%] PASSED tests/types/test_version.py::test_supported_versions_are_known 11804tests/types/test_version.py::test_known_versions_are_strictly_ordered 11805tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body 11806[gw1] [ 99%] PASSED tests/types/test_version.py::test_known_versions_are_strictly_ordered 11807tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params 11808tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve 11809[gw3] [ 99%] PASSED tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body 11810tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives 11811[gw0] [ 99%] PASSED tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params 11812[gw1] [ 99%] PASSED tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve 11813[gw3] [ 99%] PASSED tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives 11814tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests 11815tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object 11816tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope 11817[gw3] [ 99%] PASSED tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope 11818[gw0] [ 99%] PASSED tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object 11819[gw1] [ 99%] PASSED tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests 11820[gw2] [ 99%] PASSED tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule 11821tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_on_stdin_close_is_reaped_and_never_terminated 11822[gw2] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_on_stdin_close_is_reaped_and_never_terminated 11823tests/transports/stdio/test_lifecycle.py::test_cancelling_the_client_mid_session_terminates_the_whole_server_tree 11824[gw2] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_cancelling_the_client_mid_session_terminates_the_whole_server_tree 11825tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_mid_session_keeps_its_own_exit_code 11826[gw2] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_mid_session_keeps_its_own_exit_code 11827tests/transports/stdio/test_lifecycle.py::test_server_stderr_output_reaches_the_errlog_file 11828[gw2] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_server_stderr_output_reaches_the_errlog_file 11829tests/transports/stdio/test_lifecycle.py::test_fallback_process_reports_death_through_returncode_without_a_wait_call 11830[gw2] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_reports_death_through_returncode_without_a_wait_call 11831tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives 11832[gw2] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives 11833tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown 11834[gw2] [ 99%] PASSED tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown 11835tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe 11836[gw2] [ 99%] PASSED tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe 11837tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes 11838[gw2] [ 99%] SKIPPED tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes 11839tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] 11840[gw2] [ 99%] SKIPPED tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] 11841tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] 11842[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] 11843tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] 11844[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] 11845tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] 11846[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] 11847tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] 11848[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] 11849tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] 11850[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] 11851tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] 11852[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] 11853tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] 11854[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] 11855tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] 11856[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] 11857tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] 11858[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] 11859tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] 11860[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] 11861tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] 11862[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] 11863tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] 11864[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] 11865tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] 11866[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] 11867tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] 11868[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] 11869tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] 11870[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] 11871tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] 11872[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] 11873tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] 11874[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] 11875tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] 11876[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] 11877tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] 11878[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] 11879tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] 11880[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] 11881tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] 11882[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] 11883tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] 11884[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] 11885tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] 11886[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] 11887tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] 11888[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] 11889tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] 11890[gw2] [ 99%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] 11891tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] 11892[gw2] [100%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] 1189311894================= 5904 passed, 8 skipped, 1 xfailed in 41.00s ==================11895Finished executing pytestCheckPhase11896pytestCheckPhase completed in 46 seconds