python3.14-mcp-2.2.0
checks.aarch64-darwin.pkgs-mistral-vibe
· build #9327
· raw
1mac02: building snfh2sap2734c1vi1a3qn4b19fvqm83z-python3.14-mcp-2.2.0.drv2structuredAttrs is enabled3Sourcing python-remove-tests-dir-hook4Sourcing python-catch-conflicts-hook.sh5Sourcing python-remove-bin-bytecode-hook.sh6Sourcing pypa-build-hook7Using pypaBuildPhase8Sourcing python-runtime-deps-check-hook9Using pythonRuntimeDepsCheckHook10Sourcing pypa-install-hook11Using pypaInstallPhase12Sourcing python-imports-check-hook.sh13Using pythonImportsCheckPhase14Sourcing python-metadata-check-hook.sh15Using pythonMetadataCheckPhase16Sourcing python-namespaces-hook17Sourcing python-catch-conflicts-hook.sh18Sourcing pytest-check-hook19Using pytestCheckPhase
unpackPhase
20unpacking source archive /nix/store/k9f5d59ib383xj5q84zbwi6603q3cdld-source21source root is source22setting SOURCE_DATE_EPOCH to timestamp 315619200 of file "source/uv.lock"configurePhase
23no configure script, doing nothingbuildPhase
24Executing pypaBuildPhase25Setting UV_DYNAMIC_VERSIONING_BYPASS to 2.2.026Creating a wheel...27pypa build flags: --no-isolation --outdir dist/ --wheel28* Getting build dependencies for wheel...29* Building wheel...30Successfully built mcp-2.2.0-py3-none-any.whl31Finished creating a wheel...32Finished executing pypaBuildPhasepythonRuntimeDepsCheckHook
33Executing pythonRuntimeDepsCheck34Checking runtime dependencies for mcp-2.2.0-py3-none-any.whl35Finished executing pythonRuntimeDepsCheckinstallPhase
36Executing pypaInstallPhase37Successfully installed mcp-2.2.0-py3-none-any.whl38Finished executing pypaInstallPhasepythonOutputDistPhase
39Executing pythonOutputDistPhase40Finished executing pythonOutputDistPhasefixupPhase
41checking for references to /nix/var/nix/builds/nix-49832-722519865/ in /nix/store/bq93jayanjq2b2lr0llxwq786j3zplic-python3.14-mcp-2.2.0-dist...42patching script interpreter paths in /nix/store/bq93jayanjq2b2lr0llxwq786j3zplic-python3.14-mcp-2.2.0-dist43checking for references to /nix/var/nix/builds/nix-49832-722519865/ in /nix/store/hfq4nmq305yhmx2wq1g5x31hkchkvijb-python3.14-mcp-2.2.0...44patching script interpreter paths in /nix/store/hfq4nmq305yhmx2wq1g5x31hkchkvijb-python3.14-mcp-2.2.045stripping (with command strip and flags -S) in /nix/store/hfq4nmq305yhmx2wq1g5x31hkchkvijb-python3.14-mcp-2.2.0/lib /nix/store/hfq4nmq305yhmx2wq1g5x31hkchkvijb-python3.14-mcp-2.2.0/bin46Rewriting #!/nix/store/0jb1qn7qnpbz8774mq5k2c1p84gp0x76-python3-3.14.8/bin/python3.14 to #!/nix/store/0jb1qn7qnpbz8774mq5k2c1p84gp0x76-python3-3.14.847wrapping `/nix/store/hfq4nmq305yhmx2wq1g5x31hkchkvijb-python3.14-mcp-2.2.0/bin/mcp'...48Executing pythonRemoveTestsDir49Finished executing pythonRemoveTestsDirinstallCheckPhase
50no Makefile or custom installCheckPhase, doing nothingpythonImportsCheckPhase
51Executing pythonImportsCheckPhase52Check whether the following modules can be imported: mcppythonMetadataCheckPhase
53Executing pythonMetadataCheckPhasepytestCheckPhase
54Executing pytestCheckPhase55pytest flags: -m pytest -k not\ \(test_client_with_stdio_parameters_launches_the_server_as_a_subprocess\)\ and\ not\ \(test_tool_call_and_notification_round_trip_over_a_stdio_subprocess\)\ and\ not\ \(test_a_tool_spawned_childs_stdout_writes_never_reach_the_wire\)\ and\ not\ \(test_notification_validation_error\)\ and\ not\ \(test_sse_security_\)\ and\ not\ \(test_streamable_http_\)\ and\ not\ \(test_streamablehttp_\)\ and\ not\ \(test_messages_are_executed_concurrently\) --numprocesses=1056============================= test session starts ==============================57platform darwin -- Python 3.14.8, pytest-9.1.1, pluggy-1.6.058rootdir: /nix/var/nix/builds/nix-49832-722519865/source59configfile: pyproject.toml60plugins: anyio-4.15.1, examples-0.0.18, inline-snapshot-0.34.2, logfire-4.41.0, asyncio-1.4.0, xdist-3.8.061asyncio: mode=Mode.STRICT, debug=False, asyncio_default_fixture_loop_scope=None, asyncio_default_test_loop_scope=function6210 workers [5792 items] 63scheduling tests via LoadScheduling6465tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions 66tests/client/test_caching.py::test_store_failures_warn_once_per_burst 67tests/client/test_client_extensions.py::test_notification_bindings_fold_into_the_session 68tests/docs_src/test_asgi.py::test_a_request_before_the_session_manager_runs_is_rejected 69tests/docs_src/test_first_steps.py::test_the_three_primitive_capabilities_are_always_declared 70tests/client/test_session.py::test_request_timeout_zero_overrides_session_timeout 71tests/client/test_stdio.py::test_a_process_surviving_the_kill_escalation_is_logged_and_abandoned 72tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[legacy] 73tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial008.py] 74[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_pins_release_versions 75tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned 76tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_with_different_prm_and_root_urls 77[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial008.py] 78tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] 79[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/structured_output/tutorial009.py] 80tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] 81[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_dev_versions_unpinned 82tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned 83[gw7] [ 0%] PASSED tests/docs_src/test_asgi.py::test_a_request_before_the_session_manager_runs_is_rejected 84tests/docs_src/test_asgi.py::test_mounting_at_the_root_keeps_the_default_path 85[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_leaves_local_versions_unpinned 86tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed 87[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_mcp_requirement_falls_back_when_mcp_is_not_installed 88tests/cli/test_claude.py::test_generates_uv_run_command 89[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial001.py] 90tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] 91[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial002.py] 92tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] 93[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial003.py] 94tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] 95[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_anyio.py] 96tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] 97[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_asyncio.py] 98[gw7] [ 0%] PASSED tests/docs_src/test_asgi.py::test_mounting_at_the_root_keeps_the_default_path 99tests/docs_src/test_asgi.py::test_a_root_mount_swallows_routes_listed_after_it 100tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] 101[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_generates_uv_run_command 102tests/cli/test_claude.py::test_file_spec_without_object_suffix 103[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_file_spec_without_object_suffix 104tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated 105[gw3] [ 0%] PASSED tests/client/test_client_extensions.py::test_notification_bindings_fold_into_the_session 106[gw4] [ 0%] PASSED tests/client/test_session.py::test_request_timeout_zero_overrides_session_timeout 107tests/client/test_session.py::test_progress_notification_reaches_request_callback_and_message_handler 108[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial004_trio.py] 109tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] 110[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial005.py] 111tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] 112[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/subscriptions/tutorial006.py] 113tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] 114[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/testing/tutorial001.py] 115tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] 116[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_with_packages_sorted_and_deduplicated 117tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement 118[gw2] [ 0%] PASSED tests/client/test_caching.py::test_store_failures_warn_once_per_burst 119tests/client/test_caching.py::test_a_set_only_store_failure_warns_once_across_write_cycles 120[gw2] [ 0%] PASSED tests/client/test_caching.py::test_a_set_only_store_failure_warns_once_across_write_cycles 121tests/client/test_caching.py::test_an_eviction_between_capture_and_write_discards_the_write 122[gw2] [ 0%] PASSED tests/client/test_caching.py::test_an_eviction_between_capture_and_write_discards_the_write 123[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_explicit_mcp_cli_kept_alongside_pinned_requirement 124[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial001.py] 125tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] 126[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial002.py] 127tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] 128[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial003.py] 129tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] 130[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial004.py] 131tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] 132[gw7] [ 0%] PASSED tests/docs_src/test_asgi.py::test_a_root_mount_swallows_routes_listed_after_it 133tests/docs_src/test_asgi.py::test_the_host_lifespan_enters_the_session_manager 134[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/tools/tutorial005.py] 135tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] 136[gw6] [ 0%] PASSED tests/docs_src/test_first_steps.py::test_the_three_primitive_capabilities_are_always_declared 137tests/client/test_extension.py::test_claim_with_literal_discriminated_model_constructs 138[gw1] [ 0%] PASSED tests/client/test_auth.py::TestLegacyServerFallback::test_legacy_server_with_different_prm_and_root_urls 139tests/client/test_auth.py::TestSEP985Discovery::test_path_based_fallback_when_no_www_authenticate 140[gw1] [ 0%] PASSED tests/client/test_auth.py::TestSEP985Discovery::test_path_based_fallback_when_no_www_authenticate 141tests/client/test_auth.py::TestSEP985Discovery::test_root_based_fallback_after_path_based_404 142[gw4] [ 0%] PASSED tests/client/test_session.py::test_progress_notification_reaches_request_callback_and_message_handler 143tests/client/test_session.py::test_dispatcher_keyword_runs_over_direct_dispatch 144[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial001.py] 145tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] 146[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial002.py] 147tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] 148[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial003.py] 149tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] 150[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial004.py] 151tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] 152tests/docs_src/test_handling_errors.py::test_tool_error_becomes_a_tool_error_the_model_reads 153tests/client/test_caching.py::test_recapturing_a_registered_key_returns_its_current_generation 154[gw2] [ 0%] PASSED tests/client/test_caching.py::test_recapturing_a_registered_key_returns_its_current_generation 155tests/client/test_caching.py::test_the_generation_map_drops_the_oldest_key_at_its_cap 156[gw2] [ 0%] PASSED tests/client/test_caching.py::test_the_generation_map_drops_the_oldest_key_at_its_cap 157[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_with_literal_discriminated_model_constructs 158tests/client/test_extension.py::test_claim_accepts_modern_protocol_versions 159[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_accepts_modern_protocol_versions 160tests/client/test_extension.py::test_claim_rejects_core_result_type_vocabulary 161[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_core_result_type_vocabulary 162tests/client/test_extension.py::test_claim_rejects_model_subclassing_core_result_types[_ClaimedCallToolResult] 163[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_model_subclassing_core_result_types[_ClaimedCallToolResult] 164tests/client/test_extension.py::test_claim_rejects_model_subclassing_core_result_types[_ClaimedInputRequiredResult] 165[gw3] [ 0%] PASSED tests/client/test_extension.py::test_claim_rejects_model_subclassing_core_result_types[_ClaimedInputRequiredResult] 166[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial005.py] 167tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] 168[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial006.py] 169tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] 170[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial007.py] 171tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial008.py] 172[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/troubleshooting/tutorial008.py] 173tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] 174[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial001.py] 175tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] 176[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial002.py] 177tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] 178[gw9] [ 0%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial003.py] 179tests/client/test_caching.py::test_a_refresh_resolving_uncacheable_purges_the_warm_entry 180[gw2] [ 0%] PASSED tests/client/test_caching.py::test_a_refresh_resolving_uncacheable_purges_the_warm_entry 181tests/client/test_caching.py::test_evict_key_on_an_unregistered_key_still_deletes_both_arms 182tests/cli/test_claude.py::test_with_editable_adds_flag 183[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_with_editable_adds_flag 184tests/cli/test_claude.py::test_env_vars_written 185[gw0] [ 0%] PASSED tests/cli/test_claude.py::test_env_vars_written 186tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins 187[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_existing_env_vars_merged_new_wins 188tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new 189[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_existing_env_vars_preserved_without_new 190tests/cli/test_claude.py::test_other_servers_preserved 191[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_other_servers_preserved 192tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] 193[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-8-sig] 194tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] 195[gw0] [ 1%] PASSED tests/cli/test_claude.py::test_existing_config_with_a_bom_is_accepted[utf-16] 196tests/cli/test_claude.py::test_raises_when_config_dir_missing 197tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] 198[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial004.py] 199tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] 200[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/uri_templates/tutorial005.py] 201tests/docs_src/test_shape.py::test_example_imports[docs_src/whats_new/tutorial001.py] 202[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/whats_new/tutorial001.py] 203tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] 204[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001.py] 205tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] 206[gw2] [ 1%] PASSED tests/client/test_caching.py::test_evict_key_on_an_unregistered_key_still_deletes_both_arms 207tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[tools-list-changed] 208[gw1] [ 1%] PASSED tests/client/test_auth.py::TestSEP985Discovery::test_root_based_fallback_after_path_based_404 209tests/client/test_auth.py::TestSEP985Discovery::test_www_authenticate_takes_priority_over_well_known 210[gw1] [ 1%] PASSED tests/client/test_auth.py::TestSEP985Discovery::test_www_authenticate_takes_priority_over_well_known 211tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="read write"-scope-read write] 212[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="read write"-scope-read write] 213tests/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] 214[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer resource_metadata="https://api.example.com/.well-known/oauth-protected-resource"-resource_metadata-https://api.example.com/.well-known/oauth-protected-resource] 215tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error="insufficient_scope"-error-insufficient_scope] 216[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error="insufficient_scope"-error-insufficient_scope] 217tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope=read-scope-read] 218[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope=read-scope-read] 219tests/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] 220[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial001_client.py] 221tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] 222[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial002.py] 223tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] 224[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/apps/tutorial003.py] 225tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] 226[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial001.py] 227tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] 228[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial002.py] 229[gw4] [ 1%] PASSED tests/client/test_session.py::test_dispatcher_keyword_runs_over_direct_dispatch 230tests/client/test_session.py::test_direct_dispatch_roots_list_reaches_callback_with_synthesized_request_id 231tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] 232[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial003.py] 233tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] 234[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial004.py] 235tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] 236[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial005.py] 237tests/client/test_extension.py::test_claim_rejects_model_without_result_type_field 238[gw3] [ 1%] PASSED tests/client/test_extension.py::test_claim_rejects_model_without_result_type_field 239tests/client/test_extension.py::test_claim_rejects_plain_str_result_type_field 240[gw3] [ 1%] PASSED tests/client/test_extension.py::test_claim_rejects_plain_str_result_type_field 241tests/client/test_extension.py::test_claim_rejects_mismatched_result_type_literal 242[gw3] [ 1%] PASSED tests/client/test_extension.py::test_claim_rejects_mismatched_result_type_literal 243tests/client/test_extension.py::test_claim_rejects_model_not_subclassing_result 244[gw3] [ 1%] PASSED tests/client/test_extension.py::test_claim_rejects_model_not_subclassing_result 245tests/client/test_extension.py::test_claim_rejects_model_aliasing_core_surface_fields 246[gw3] [ 1%] PASSED tests/client/test_extension.py::test_claim_rejects_model_aliasing_core_surface_fields 247tests/client/test_extension.py::test_wire_keys_for_a_bare_field_is_just_its_name 248[gw3] [ 1%] PASSED tests/client/test_extension.py::test_wire_keys_for_a_bare_field_is_just_its_name 249tests/client/test_extension.py::test_claim_rejects_reserved_aliases_in_every_alias_form 250[gw3] [ 1%] PASSED tests/client/test_extension.py::test_claim_rejects_reserved_aliases_in_every_alias_form 251tests/client/test_extension.py::test_claim_rejects_method_outside_the_closed_verb_set 252[gw3] [ 1%] PASSED tests/client/test_extension.py::test_claim_rejects_method_outside_the_closed_verb_set 253tests/client/test_extension.py::test_claim_rejects_empty_protocol_versions 254[gw3] [ 1%] PASSED tests/client/test_extension.py::test_claim_rejects_empty_protocol_versions 255tests/client/test_extension.py::test_claim_rejects_non_modern_protocol_versions 256[gw3] [ 1%] PASSED tests/client/test_extension.py::test_claim_rejects_non_modern_protocol_versions 257tests/client/test_extension.py::test_result_claim_is_frozen 258[gw3] [ 1%] PASSED tests/client/test_extension.py::test_result_claim_is_frozen 259tests/client/test_extension.py::test_notification_binding_constructs 260[gw3] [ 1%] PASSED tests/client/test_extension.py::test_notification_binding_constructs 261tests/client/test_extension.py::test_notification_binding_accepts_core_known_method 262[gw3] [ 1%] PASSED tests/client/test_extension.py::test_notification_binding_accepts_core_known_method 263tests/client/test_extension.py::test_notification_binding_is_frozen 264[gw3] [ 1%] PASSED tests/client/test_extension.py::test_notification_binding_is_frozen 265tests/client/test_extension.py::test_extension_defaults_advertise_nothing 266[gw3] [ 1%] PASSED tests/client/test_extension.py::test_extension_defaults_advertise_nothing 267tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[io.modelcontextprotocol/ui] 268[gw3] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[io.modelcontextprotocol/ui] 269tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/my_ext] 270[gw3] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/my_ext] 271tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.x-y.z2/n.a-b_c] 272[gw3] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.x-y.z2/n.a-b_c] 273tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[example/x] 274[gw3] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[example/x] 275tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[a/b] 276tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] 277[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/asgi/tutorial006.py] 278tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] 279[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial001.py] 280tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] 281[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/authorization/tutorial002.py] 282tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] 283[gw9] [ 1%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial001.py] 284tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] 285[gw6] [ 1%] PASSED tests/docs_src/test_handling_errors.py::test_tool_error_becomes_a_tool_error_the_model_reads 286tests/docs_src/test_handling_errors.py::test_tool_error_is_one_info_line 287[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer resource_metadata=https://api.example.com/.well-known/oauth-protected-resource-resource_metadata-https://api.example.com/.well-known/oauth-protected-resource] 288tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error=invalid_token-error-invalid_token] 289[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer error=invalid_token-error-invalid_token] 290tests/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] 291[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope="admin:write resource:read", error="insufficient_scope"-scope-admin:write resource:read] 292tests/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] 293[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", resource_metadata="https://api.example.com/.well-known/oauth-protected-resource", error="insufficient_scope"-resource_metadata-https://api.example.com/.well-known/oauth-protected-resource] 294tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope=basic-scope-basic] 295[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer realm="api", scope=basic-scope-basic] 296tests/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] 297[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer scope="resource:read resource:write user_profile"-scope-resource:read resource:write user_profile] 298tests/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] 299[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_valid_cases[Bearer resource_metadata="https://api.example.com/auth/metadata?version=1"-resource_metadata-https://api.example.com/auth/metadata?version=1] 300tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[None-scope-no WWW-Authenticate header] 301[gw1] [ 1%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[None-scope-no WWW-Authenticate header] 302tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[-scope-empty WWW-Authenticate header] 303[gw3] [ 1%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[a/b] 304tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/9start] 305[gw3] [ 2%] PASSED tests/client/test_extension.py::test_grammar_conformant_identifiers_accepted_at_class_definition[com.example/9start] 306tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[noprefix] 307[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[noprefix] 308tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] 309[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[-foo/bar] 310tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] 311[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[.leading/x] 312tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] 313[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[a..b/x] 314tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] 315[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo-/x] 316tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] 317[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_raises_when_config_dir_missing 318tests/cli/test_claude.py::test_get_uv_path[/usr/local/bin/uv-/usr/local/bin/uv] 319[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_get_uv_path[/usr/local/bin/uv-/usr/local/bin/uv] 320tests/cli/test_claude.py::test_get_uv_path[None-uv] 321[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_get_uv_path[None-uv] 322tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py-C:\\Users\\server.py] 323[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py-C:\\Users\\server.py] 324tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py:app-C:\\Users\\server.py:app] 325[gw0] [ 2%] PASSED tests/cli/test_claude.py::test_windows_drive_letter_not_split[C:\\Users\\server.py:app-C:\\Users\\server.py:app] 326tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[server.py-None] 327[gw1] [ 2%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[-scope-empty WWW-Authenticate header] 328tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer realm="api", error="insufficient_scope"-scope-no scope parameter] 329[gw1] [ 2%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer realm="api", error="insufficient_scope"-scope-no scope parameter] 330tests/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] 331[gw1] [ 2%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer realm="api", scope="read write"-resource_metadata-no resource_metadata parameter] 332tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer scope=-scope-malformed scope parameter] 333[gw1] [ 2%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer scope=-scope-malformed scope parameter] 334tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer resource_metadata=-resource_metadata-malformed resource_metadata parameter] 335[gw1] [ 2%] PASSED tests/client/test_auth.py::TestWWWAuthenticate::test_extract_field_from_www_auth_invalid_cases[Bearer resource_metadata=-resource_metadata-malformed resource_metadata parameter] 336tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-True] 337[gw2] [ 2%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[tools-list-changed] 338tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[prompts-list-changed] 339[gw2] [ 2%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[prompts-list-changed] 340tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resources-list-changed] 341[gw2] [ 2%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resources-list-changed] 342tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resource-updated] 343[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial002.py] 344tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] 345[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/caching/tutorial003.py] 346tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] 347[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001.py] 348tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] 349[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial001_client.py] 350tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] 351[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial002.py] 352tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] 353[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial003.py] 354tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] 355[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial004.py] 356tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] 357[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial005.py] 358tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial006.py] 359[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial006.py] 360tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial007.py] 361[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client/tutorial007.py] 362tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial001.py] 363[gw9] [ 2%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial001.py] 364tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] 365[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-True] 366tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-metadata.json-True] 367[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/client-metadata.json-True] 368tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/path/to/client-True] 369[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/path/to/client-True] 370tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com:8443/client-True] 371[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com:8443/client-True] 372tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://example.com/client-False] 373[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://example.com/client-False] 374tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com-False] 375[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com-False] 376tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/-False] 377[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[https://example.com/-False] 378tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[None-False] 379[gw1] [ 2%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[None-False] 380tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[-False] 381[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[9foo/x] 382tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] 383[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/-bar] 384tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] 385[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/bar-] 386tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] 387[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/] 388tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] 389[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[/bar] 390tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] 391[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[foo/ba r] 392tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] 393[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[io.modelcontextprotocol/ui\n] 394tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] 395[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[] 396[gw8] [ 2%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[legacy] 397tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[auto] 398[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[server.py-None] 399tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[foo.py:srv_obj-srv_obj] 400[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_parse_file_path_accepts_valid_specs[foo.py:srv_obj-srv_obj] 401tests/cli/test_utils.py::test_parse_file_path_missing 402[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_parse_file_path_missing 403tests/cli/test_utils.py::test_parse_file_exit_on_dir 404[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_parse_file_exit_on_dir 405tests/cli/test_utils.py::test_build_uv_command_pins_the_running_mcp_version 406[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_build_uv_command_pins_the_running_mcp_version 407tests/cli/test_utils.py::test_build_uv_command_leaves_source_builds_unpinned 408[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_build_uv_command_leaves_source_builds_unpinned 409tests/cli/test_utils.py::test_build_uv_command_adds_editable_and_packages 410[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_build_uv_command_adds_editable_and_packages 411tests/cli/test_utils.py::test_get_npx_unix_like 412[gw4] [ 2%] PASSED tests/client/test_session.py::test_direct_dispatch_roots_list_reaches_callback_with_synthesized_request_id 413tests/client/test_session.py::test_raising_notification_callbacks_over_direct_dispatch_cost_only_that_delivery 414[gw2] [ 2%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[resource-updated] 415tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[unrelated] 416[gw0] [ 2%] PASSED tests/cli/test_utils.py::test_get_npx_unix_like 417tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] 418[gw3] [ 2%] PASSED tests/client/test_extension.py::test_malformed_identifier_rejected_at_class_definition[42] 419tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition 420[gw3] [ 3%] PASSED tests/client/test_extension.py::test_subclass_without_identifier_allowed_at_definition 421tests/client/test_extension.py::test_advertise_serves_captured_settings 422[gw3] [ 3%] PASSED tests/client/test_extension.py::test_advertise_serves_captured_settings 423tests/client/test_extension.py::test_advertise_defaults_to_empty_settings 424[gw3] [ 3%] PASSED tests/client/test_extension.py::test_advertise_defaults_to_empty_settings 425tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[noprefix] 426[gw3] [ 3%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[noprefix] 427[gw1] [ 3%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[-False] 428tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://[::1/foo/-False] 429[gw1] [ 3%] PASSED tests/client/test_auth.py::TestCIMD::test_is_valid_client_metadata_url[http://[::1/foo/-False] 430tests/client/test_auth.py::TestCIMD::test_should_use_client_metadata_url_when_server_supports 431[gw1] [ 3%] PASSED tests/client/test_auth.py::TestCIMD::test_should_use_client_metadata_url_when_server_supports 432tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_server_does_not_support 433[gw1] [ 3%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_server_does_not_support 434tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_not_provided 435[gw1] [ 3%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_not_provided 436tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_no_metadata 437[gw1] [ 3%] PASSED tests/client/test_auth.py::TestCIMD::test_should_not_use_client_metadata_url_when_no_metadata 438tests/client/test_auth.py::TestCIMD::test_create_client_info_from_metadata_url 439[gw1] [ 3%] PASSED tests/client/test_auth.py::TestCIMD::test_create_client_info_from_metadata_url 440[gw6] [ 3%] PASSED tests/docs_src/test_handling_errors.py::test_tool_error_is_one_info_line 441tests/docs_src/test_handling_errors.py::test_a_title_the_catalog_knows_is_an_ordinary_result 442[gw4] [ 3%] PASSED tests/client/test_session.py::test_raising_notification_callbacks_over_direct_dispatch_cost_only_that_delivery 443tests/client/test_session.py::test_dispatcher_keyword_send_request_before_enter_raises_runtimeerror 444[gw4] [ 3%] PASSED tests/client/test_session.py::test_dispatcher_keyword_send_request_before_enter_raises_runtimeerror 445tests/client/test_session.py::test_dispatcher_keyword_send_request_after_exit_raises_connection_closed 446[gw4] [ 3%] PASSED tests/client/test_session.py::test_dispatcher_keyword_send_request_after_exit_raises_connection_closed 447tests/client/test_session.py::test_dispatcher_keyword_request_timeout_bounds_wait_for_never_run_peer 448tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[foo/] 449[gw3] [ 3%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[foo/] 450tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[] 451[gw3] [ 3%] PASSED tests/client/test_extension.py::test_advertise_validates_identifier_eagerly[] 452tests/client/test_input_required.py::test_single_round_dispatches_then_retries_to_terminal_result 453tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url 454[gw1] [ 3%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_valid_client_metadata_url 455tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error 456[gw1] [ 3%] PASSED tests/client/test_auth.py::TestCIMD::test_oauth_provider_with_invalid_client_metadata_url_raises_error 457tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports 458[gw2] [ 3%] PASSED tests/client/test_caching.py::test_notifications_evict_exactly_their_mapped_entries[unrelated] 459tests/client/test_client.py::test_client_is_initialized 460[gw7] [ 3%] PASSED tests/docs_src/test_asgi.py::test_the_host_lifespan_enters_the_session_manager 461tests/docs_src/test_asgi.py::test_two_servers_get_two_mounts 462[gw7] [ 3%] PASSED tests/docs_src/test_asgi.py::test_two_servers_get_two_mounts 463tests/docs_src/test_asgi.py::test_one_lifespan_starts_both_session_managers 464tests/cli/test_utils.py::test_get_npx_windows 465[gw0] [ 3%] PASSED tests/cli/test_utils.py::test_get_npx_windows 466tests/cli/test_utils.py::test_get_npx_returns_none_when_npx_missing 467[gw0] [ 3%] PASSED tests/cli/test_utils.py::test_get_npx_returns_none_when_npx_missing 468tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info 469[gw0] [ 3%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_sets_client_info 470tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes 471[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial002.py] 472tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] 473[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial003.py] 474tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] 475[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_callbacks/tutorial004.py] 476tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] 477[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial001.py] 478tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] 479[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial002.py] 480tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] 481[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial003.py] 482tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] 483[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/client_transports/tutorial004.py] 484tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] 485[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial001.py] 486tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] 487[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial002.py] 488tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] 489[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/completions/tutorial003.py] 490tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] 491[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial001.py] 492tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] 493[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial002.py] 494tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] 495[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/context/tutorial003.py] 496tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] 497[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial001.py] 498tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] 499[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial002.py] 500tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] 501[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial003.py] 502tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] 503[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/dependencies/tutorial004.py] 504tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] 505[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial001.py] 506tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] 507[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial002.py] 508tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] 509[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial003.py] 510tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] 511[gw3] [ 3%] PASSED tests/client/test_input_required.py::test_single_round_dispatches_then_retries_to_terminal_result 512tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required 513[gw8] [ 3%] PASSED tests/docs_src/test_sampling_and_roots.py::test_a_roots_dependency_receives_the_clients_folders[auto] 514tests/docs_src/test_sampling_and_roots.py::test_an_undeclared_capability_fails_before_a_request_is_sent 515[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/deploy/tutorial004.py] 516tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] 517[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial001.py] 518tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] 519[gw9] [ 3%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial002.py] 520tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] 521[gw1] [ 3%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_uses_cimd_when_server_supports 522tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support 523[gw1] [ 3%] PASSED tests/client/test_auth.py::TestCIMD::test_auth_flow_falls_back_to_dcr_when_no_cimd_support 524tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token 525[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_when_as_supports_and_client_has_refresh_token 526tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope 527[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_added_with_www_authenticate_scope 528tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support 529[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_does_not_support 530tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant 531[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_client_has_no_refresh_token_grant 532tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present 533[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_duplicated_when_already_present 534tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected 535[gw1] [ 3%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_scopes_selected 536tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none 537[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_as_scopes_supported_is_none 538tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata 539[gw3] [ 4%] PASSED tests/client/test_input_required.py::test_multi_round_loops_until_retry_returns_non_input_required 540tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap 541[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial003.py] 542tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] 543[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/elicitation/tutorial004.py] 544tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] 545[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial001.py] 546tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] 547[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial002.py] 548tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003.py] 549[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_scopes 550tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post 551[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_init_with_client_secret_post 552tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials 553[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_credentials 554tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id 555[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_client_secret_post_includes_client_id 556tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes 557[gw4] [ 4%] PASSED tests/client/test_session.py::test_dispatcher_keyword_request_timeout_bounds_wait_for_never_run_peer 558tests/client/test_session.py::test_adopt_raises_when_no_mutual_modern_version_is_supported 559[gw4] [ 4%] PASSED tests/client/test_session.py::test_adopt_raises_when_no_mutual_modern_version_is_supported 560tests/client/test_session.py::test_initialize_opts_out_of_cancel_on_abandon_while_other_requests_leave_it_unset 561[gw4] [ 4%] PASSED tests/client/test_session.py::test_initialize_opts_out_of_cancel_on_abandon_while_other_requests_leave_it_unset 562tests/client/test_session.py::test_modern_stamp_leaves_cancel_on_abandon_at_the_dispatcher_default 563[gw2] [ 4%] PASSED tests/client/test_client.py::test_client_is_initialized 564tests/client/test_client.py::test_client_exposes_negotiated_protocol_version 565[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003.py] 566tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003_client.py] 567[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial003_client.py] 568tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004.py] 569[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004.py] 570tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] 571[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial004_client.py] 572tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] 573[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial005.py] 574tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006.py] 575[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006.py] 576tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] 577[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial006_client.py] 578[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestClientCredentialsOAuthProvider::test_exchange_token_without_scopes 579tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info 580[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_init_sets_client_info 581tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials 582[gw3] [ 4%] PASSED tests/client/test_input_required.py::test_exceeding_max_rounds_raises_with_the_configured_cap 583[gw8] [ 4%] PASSED tests/docs_src/test_sampling_and_roots.py::test_an_undeclared_capability_fails_before_a_request_is_sent 584tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error 585[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_client_credentials 586tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes 587[gw4] [ 4%] PASSED tests/client/test_session.py::test_modern_stamp_leaves_cancel_on_abandon_at_the_dispatcher_default 588tests/client/test_session.py::test_constructor_rejects_streams_and_dispatcher_together 589[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_as_metadata 590tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided 591[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_offline_access_not_added_when_no_grant_types_provided 592tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant 593[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_default_client_metadata_includes_refresh_token_grant 594tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises 595[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_adds_offline_access_when_as_advertises 596tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise 597[gw0] [ 4%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestPrivateKeyJWTOAuthProvider::test_exchange_token_without_scopes 598tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider 599[gw7] [ 4%] PASSED tests/docs_src/test_asgi.py::test_one_lifespan_starts_both_session_managers 600tests/docs_src/test_asgi.py::test_cors_exposes_the_session_id_header 601[gw7] [ 4%] PASSED tests/docs_src/test_asgi.py::test_cors_exposes_the_session_id_header 602tests/docs_src/test_asgi.py::test_custom_route_lands_next_to_the_mcp_endpoint 603[gw7] [ 4%] PASSED tests/docs_src/test_asgi.py::test_custom_route_lands_next_to_the_mcp_endpoint 604tests/docs_src/test_asgi.py::test_the_health_check_answers_outside_the_protocol 605[gw7] [ 4%] PASSED tests/docs_src/test_asgi.py::test_the_health_check_answers_outside_the_protocol 606tests/docs_src/test_asgi.py::test_the_default_app_is_localhost_only 607[gw6] [ 4%] PASSED tests/docs_src/test_handling_errors.py::test_a_title_the_catalog_knows_is_an_ordinary_result 608[gw4] [ 4%] PASSED tests/client/test_session.py::test_constructor_rejects_streams_and_dispatcher_together 609tests/client/test_session.py::test_constructor_requires_both_streams_without_dispatcher 610[gw4] [ 4%] PASSED tests/client/test_session.py::test_constructor_requires_both_streams_without_dispatcher 611tests/client/test_session.py::test_aenter_cancelled_while_dispatcher_starts_unwinds_cleanly 612tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] 613[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007.py] 614tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] 615[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/extensions/tutorial007_client.py] 616tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] 617[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001.py] 618tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] 619tests/docs_src/test_session_groups.py::test_both_servers_call_their_tool_search 620[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/first_steps/tutorial001_client.py] 621tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] 622[gw3] [ 4%] PASSED tests/client/test_input_required.py::test_dispatch_returning_error_data_aborts_the_loop_as_mcp_error 623tests/client/test_input_required.py::test_request_state_passes_through_byte_identical 624[gw1] [ 4%] PASSED tests/client/test_auth.py::TestSEP2207OfflineAccessScope::test_auth_flow_no_offline_access_when_as_does_not_advertise 625tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] 626[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[advertised-and-correct] 627tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-and-omitted] 628[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-and-omitted] 629tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-but-correct] 630[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[not-advertised-but-correct] 631tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[trailing-slash-issuer] 632[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_accepts[trailing-slash-issuer] 633[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial001.py] 634tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] 635[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial002.py] 636tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] 637[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial003.py] 638tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] 639[gw9] [ 4%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/handling_errors/tutorial004.py] 640tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] 641[gw2] [ 4%] PASSED tests/client/test_client.py::test_client_exposes_negotiated_protocol_version 642tests/client/test_client.py::test_client_with_simple_server 643tests/docs_src/test_handling_errors.py::test_a_bad_argument_never_reaches_the_function 644[gw6] [ 4%] PASSED tests/docs_src/test_handling_errors.py::test_a_bad_argument_never_reaches_the_function 645tests/docs_src/test_handling_errors.py::test_mcp_error_makes_the_call_itself_fail 646[gw7] [ 4%] PASSED tests/docs_src/test_asgi.py::test_the_default_app_is_localhost_only 647tests/docs_src/test_asgi.py::test_the_documented_browser_origin_works_end_to_end 648tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[advertised-but-omitted] 649[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[advertised-but-omitted] 650tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[wrong-issuer] 651[gw1] [ 4%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[wrong-issuer] 652tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[unexpected-when-not-advertised] 653[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[unexpected-when-not-advertised] 654tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[trailing-slash-not-normalized] 655[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_rejects[trailing-slash-not-normalized] 656tests/client/test_auth.py::test_validate_authorization_response_iss_without_metadata 657[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_authorization_response_iss_without_metadata 658tests/client/test_auth.py::test_validate_metadata_issuer_accepts_match 659[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider 660tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims 661[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestSignedJWTParameters::test_create_assertion_provider_with_additional_claims 662tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token 663[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::TestStaticAssertionProvider::test_returns_static_token 664tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] 665[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial001.py] 666tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] 667[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/identity_assertion/tutorial002.py] 668tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] 669[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/index/tutorial001.py] 670tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] 671[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_metadata_issuer_accepts_match 672tests/client/test_auth.py::test_validate_metadata_issuer_rejects_mismatch 673[gw1] [ 5%] PASSED tests/client/test_auth.py::test_validate_metadata_issuer_rejects_mismatch 674tests/client/test_auth.py::test_union_scopes[disjoint-union-order] 675[gw1] [ 5%] PASSED tests/client/test_auth.py::test_union_scopes[disjoint-union-order] 676tests/client/test_auth.py::test_union_scopes[dedup] 677[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001.py] 678tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] 679[gw4] [ 5%] PASSED tests/client/test_session.py::test_aenter_cancelled_while_dispatcher_starts_unwinds_cleanly 680[gw1] [ 5%] PASSED tests/client/test_auth.py::test_union_scopes[dedup] 681tests/client/test_auth.py::test_union_scopes[no-previous] 682[gw1] [ 5%] PASSED tests/client/test_auth.py::test_union_scopes[no-previous] 683tests/client/test_auth.py::test_union_scopes[no-new] 684tests/client/test_session.py::test_send_notification_after_close_is_dropped_silently 685[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-as-configured] 686tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] 687[gw3] [ 5%] PASSED tests/client/test_input_required.py::test_request_state_passes_through_byte_identical 688tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] 689[gw1] [ 5%] PASSED tests/client/test_auth.py::test_union_scopes[no-new] 690tests/client/test_auth.py::test_union_scopes[both-empty] 691[gw1] [ 5%] PASSED tests/client/test_auth.py::test_union_scopes[both-empty] 692tests/client/test_auth.py::test_credentials_match_issuer_same_issuer 693[gw2] [ 5%] PASSED tests/client/test_client.py::test_client_with_simple_server 694[gw8] [ 5%] PASSED tests/docs_src/test_session_groups.py::test_both_servers_call_their_tool_search 695tests/docs_src/test_session_groups.py::test_a_connected_server_is_aggregated_into_the_group 696[gw1] [ 5%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_same_issuer 697tests/client/test_auth.py::test_credentials_match_issuer_different_issuer 698[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial001_client.py] 699tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] 700[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial002.py] 701tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial003.py] 702[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/legacy_clients/tutorial003.py] 703tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial001.py] 704[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial001.py] 705tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial002.py] 706[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lifespan/tutorial002.py] 707tests/client/test_client.py::test_client_send_ping 708[gw6] [ 5%] PASSED tests/docs_src/test_handling_errors.py::test_mcp_error_makes_the_call_itself_fail 709tests/docs_src/test_handling_errors.py::test_mcp_error_only_fires_on_the_raising_path 710[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[secret-root-slash] 711tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] 712[gw3] [ 5%] PASSED tests/client/test_input_required.py::test_state_only_legs_back_off_exponentially_to_the_cap[trio-mockclock] 713tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] 714tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/logging/tutorial001.py] 715[gw1] [ 5%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_different_issuer 716tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] 717[gw1] [ 5%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[current-has-root-slash] 718tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] 719[gw1] [ 5%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_treats_root_slash_as_the_same_issuer[recorded-has-root-slash] 720tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths 721[gw1] [ 5%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_root_slash_tolerance_does_not_extend_to_other_paths 722tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone 723[gw1] [ 5%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_no_recorded_issuer_is_left_alone 724tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable 725[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/logging/tutorial001.py] 726tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial001.py] 727[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial001.py] 728tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial002.py] 729[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial002.py] 730tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial003.py] 731[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial003.py] 732tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial004.py] 733[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial004.py] 734tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial005.py] 735[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial005.py] 736tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial006.py] 737[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial006.py] 738[gw1] [ 5%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_cimd_is_portable 739tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable 740[gw1] [ 5%] PASSED tests/client/test_auth.py::test_credentials_match_issuer_url_shaped_dcr_id_is_not_portable 741tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request 742[gw3] [ 5%] PASSED tests/client/test_input_required.py::test_backoff_counter_resets_after_a_leg_with_input_requests[trio-mockclock] 743tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently 744tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial007.py] 745[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/lowlevel/tutorial007.py] 746tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial001.py] 747[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-as-configured] 748[gw4] [ 5%] PASSED tests/client/test_session.py::test_send_notification_after_close_is_dropped_silently 749tests/client/test_session.py::test_initialize_is_idempotent_and_returns_the_cached_result 750[gw4] [ 5%] PASSED tests/client/test_session.py::test_initialize_is_idempotent_and_returns_the_cached_result 751tests/client/test_session.py::test_discover_adopts_the_returned_result_and_installs_the_modern_stamp 752[gw4] [ 5%] PASSED tests/client/test_session.py::test_discover_adopts_the_returned_result_and_installs_the_modern_stamp 753tests/client/test_session.py::test_log_level_opt_in_is_stamped_on_modern_requests_and_overridable_per_call 754tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] 755[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial001.py] 756tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial002.py] 757[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial002.py] 758tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial003.py] 759[gw2] [ 5%] PASSED tests/client/test_client.py::test_client_send_ping 760tests/client/test_client.py::test_client_list_tools 761[gw7] [ 5%] PASSED tests/docs_src/test_asgi.py::test_the_documented_browser_origin_works_end_to_end 762tests/docs_src/test_authorization.py::test_the_in_memory_client_never_authenticates 763[gw3] [ 5%] PASSED tests/client/test_input_required.py::test_input_requests_are_dispatched_concurrently 764tests/client/test_input_required.py::test_default_max_rounds_constant 765[gw0] [ 5%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_with_configured_issuer_exchanges_at_that_issuer[jwt-root-slash] 766[gw9] [ 5%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial003.py] 767tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial004.py] 768[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial004.py] 769[gw3] [ 6%] PASSED tests/client/test_input_required.py::test_default_max_rounds_constant 770tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial005.py] 771tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] 772[gw4] [ 6%] PASSED tests/client/test_session.py::test_log_level_opt_in_is_stamped_on_modern_requests_and_overridable_per_call 773tests/client/test_session.py::test_discover_retries_once_on_unsupported_version_then_adopts 774tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] 775[gw4] [ 6%] PASSED tests/client/test_session.py::test_discover_retries_once_on_unsupported_version_then_adopts 776[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/media/tutorial005.py] 777tests/client/test_session.py::test_discover_raises_when_retry_intersection_is_empty 778tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/middleware/tutorial001.py] 779[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/middleware/tutorial001.py] 780tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial001.py] 781[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[secret] 782[gw4] [ 6%] PASSED tests/client/test_session.py::test_discover_raises_when_retry_intersection_is_empty 783tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] 784[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial001.py] 785tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial002.py] 786tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32601] 787[gw8] [ 6%] PASSED tests/docs_src/test_session_groups.py::test_a_connected_server_is_aggregated_into_the_group 788[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial002.py] 789tests/docs_src/test_session_groups.py::test_colliding_names_are_rejected 790tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial003.py] 791[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_picks_its_configured_issuer_among_several_advertised_servers[jwt] 792[gw4] [ 6%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32601] 793tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] 794[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial003.py] 795tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial004.py] 796tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32001] 797[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial004.py] 798[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[secret] 799tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial005.py] 800tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] 801[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/mrtr/tutorial005.py] 802[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_constructing_without_issuer_is_deprecated[jwt] 803tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] 804[gw5] [ 6%] PASSED tests/client/test_stdio.py::test_a_process_surviving_the_kill_escalation_is_logged_and_abandoned 805[gw2] [ 6%] PASSED tests/client/test_client.py::test_client_list_tools 806tests/client/test_client.py::test_client_call_tool 807tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/oauth_clients/tutorial001.py] 808[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/oauth_clients/tutorial001.py] 809[gw4] [ 6%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32001] 810tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32603] 811tests/client/test_stdio.py::test_an_eperm_group_that_dies_during_the_grace_period_is_not_sigkilled 812tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/oauth_clients/tutorial002.py] 813[gw7] [ 6%] PASSED tests/docs_src/test_authorization.py::test_the_in_memory_client_never_authenticates 814tests/docs_src/test_authorization.py::test_token_verifier_and_auth_settings_must_travel_together 815[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/oauth_clients/tutorial002.py] 816tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/opentelemetry/tutorial001.py] 817[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[secret] 818[gw4] [ 6%] PASSED tests/client/test_session.py::test_discover_reraises_non_retry_errors_without_falling_back[-32603] 819[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/opentelemetry/tutorial001.py] 820tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/pagination/tutorial001.py] 821tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] 822tests/client/test_session.py::test_discover_validates_the_response_shape_before_adopting 823[gw7] [ 6%] PASSED tests/docs_src/test_authorization.py::test_token_verifier_and_auth_settings_must_travel_together 824[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/pagination/tutorial001.py] 825tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/pagination/tutorial002.py] 826tests/docs_src/test_authorization.py::test_the_app_grows_a_protected_resource_metadata_route 827[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/pagination/tutorial002.py] 828tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/progress/tutorial001.py] 829[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/progress/tutorial001.py] 830[gw4] [ 6%] PASSED tests/client/test_session.py::test_discover_validates_the_response_shape_before_adopting 831tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/progress/tutorial002.py] 832[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_without_issuer_the_exchange_follows_whichever_server_was_discovered[jwt] 833tests/client/test_session.py::test_discover_is_idempotent_and_returns_the_cached_result 834[gw7] [ 6%] PASSED tests/docs_src/test_authorization.py::test_the_app_grows_a_protected_resource_metadata_route 835tests/docs_src/test_authorization.py::test_the_metadata_document_is_built_from_auth_settings 836tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction 837[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/progress/tutorial002.py] 838tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial001.py] 839[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_an_issuer_that_is_not_an_http_url_is_rejected_at_construction 840tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] 841[gw1] [ 6%] PASSED tests/client/test_auth.py::test_handle_token_response_backfills_omitted_scope_from_request 842[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial001.py] 843tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial002.py] 844tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body 845[gw7] [ 6%] PASSED tests/docs_src/test_authorization.py::test_the_metadata_document_is_built_from_auth_settings 846[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial002.py] 847tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial003.py] 848tests/docs_src/test_authorization.py::test_a_request_without_a_token_never_reaches_the_protocol 849[gw4] [ 6%] PASSED tests/client/test_session.py::test_discover_is_idempotent_and_returns_the_cached_result 850[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial003.py] 851tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial004.py] 852tests/client/test_session.py::test_era_neutral_properties_are_none_before_any_handshake 853[gw3] [ 6%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_tools-tools/list] 854[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial004.py] 855tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial005.py] 856[gw7] [ 6%] PASSED tests/docs_src/test_authorization.py::test_a_request_without_a_token_never_reaches_the_protocol 857tests/docs_src/test_authorization.py::test_a_token_the_verifier_rejects_gets_the_same_401 858[gw4] [ 6%] PASSED tests/client/test_session.py::test_era_neutral_properties_are_none_before_any_handshake 859tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] 860[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[secret] 861tests/client/test_session.py::test_era_neutral_properties_after_discover 862[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial005.py] 863tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial006.py] 864tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] 865[gw1] [ 6%] PASSED tests/client/test_auth.py::test_handle_token_response_raises_on_non_2xx_with_body 866[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/prompts/tutorial006.py] 867tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial001.py] 868tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted 869[gw4] [ 6%] PASSED tests/client/test_session.py::test_era_neutral_properties_after_discover 870[gw7] [ 6%] PASSED tests/docs_src/test_authorization.py::test_a_token_the_verifier_rejects_gets_the_same_401 871[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial001.py] 872tests/client/test_session.py::test_server_info_is_none_when_the_discover_result_carries_no_stamp 873[gw8] [ 6%] PASSED tests/docs_src/test_session_groups.py::test_colliding_names_are_rejected 874tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial002.py] 875tests/docs_src/test_session_groups.py::test_component_name_hook_prefixes_every_name 876tests/docs_src/test_authorization.py::test_get_access_token_is_none_outside_an_authenticated_request 877[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial002.py] 878tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial003.py] 879[gw0] [ 6%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_metadata_for_a_different_issuer[jwt] 880[gw4] [ 6%] PASSED tests/client/test_session.py::test_server_info_is_none_when_the_discover_result_carries_no_stamp 881tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] 882[gw9] [ 6%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial003.py] 883tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial004.py] 884tests/client/test_session.py::test_a_malformed_server_info_stamp_reads_as_absent 885[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/protocol_versions/tutorial004.py] 886tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/real_host/tutorial001.py] 887[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/real_host/tutorial001.py] 888tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial001.py] 889[gw4] [ 7%] PASSED tests/client/test_session.py::test_a_malformed_server_info_stamp_reads_as_absent 890tests/client/test_session.py::test_discover_reraises_unsupported_version_with_malformed_error_data 891[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial001.py] 892[gw5] [ 7%] PASSED tests/client/test_stdio.py::test_an_eperm_group_that_dies_during_the_grace_period_is_not_sigkilled 893tests/client/test_stdio.py::test_an_eperm_group_that_outlives_the_grace_period_is_still_sigkilled 894tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial002.py] 895[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial002.py] 896tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial003.py] 897[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/resources/tutorial003.py] 898[gw4] [ 7%] PASSED tests/client/test_session.py::test_discover_reraises_unsupported_version_with_malformed_error_data 899[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[secret] 900tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] 901tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial001.py] 902[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial001.py] 903tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial002.py] 904[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial002.py] 905tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial003.py] 906tests/client/test_session.py::test_a_positive_inbound_ttl_reaches_the_result_unchanged 907[gw7] [ 7%] PASSED tests/docs_src/test_authorization.py::test_get_access_token_is_none_outside_an_authenticated_request 908[gw1] [ 7%] PASSED tests/client/test_auth.py::test_handle_refresh_response_carries_prior_scope_and_refresh_token_when_omitted 909tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned 910[gw4] [ 7%] PASSED tests/client/test_session.py::test_a_positive_inbound_ttl_reaches_the_result_unchanged 911[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/run/tutorial003.py] 912tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/sampling_and_roots/tutorial001.py] 913tests/docs_src/test_authorization.py::test_get_access_token_is_the_callers_access_token 914tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[True] 915[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_provider_refuses_to_exchange_without_metadata_when_issuer_configured[jwt] 916[gw3] [ 7%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resources-resources/list] 917[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/sampling_and_roots/tutorial001.py] 918tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/sampling_and_roots/tutorial002.py] 919tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] 920tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] 921[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/sampling_and_roots/tutorial002.py] 922[gw1] [ 7%] PASSED tests/client/test_auth.py::test_handle_refresh_response_adopts_rotated_refresh_token_when_returned 923tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed 924tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial001.py] 925[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial001.py] 926tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial002.py] 927[gw4] [ 7%] PASSED tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[True] 928tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[False] 929[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial002.py] 930tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial003.py] 931[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial003.py] 932tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial004.py] 933[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/session_groups/tutorial004.py] 934tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial001.py] 935[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[secret] 936[gw4] [ 7%] PASSED tests/client/test_session.py::test_a_boolean_inbound_ttl_is_not_clamped_only_coerced_by_validation[False] 937tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2024-11-05] 938[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial001.py] 939tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial002.py] 940tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[jwt] 941[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial002.py] 942[gw4] [ 7%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2024-11-05] 943tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial003.py] 944tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-03-26] 945[gw1] [ 7%] PASSED tests/client/test_auth.py::test_issuer_binding_evaluated_against_the_server_origin_when_prm_discovery_failed 946tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused 947[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial003.py] 948tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial004.py] 949[gw8] [ 7%] PASSED tests/docs_src/test_session_groups.py::test_component_name_hook_prefixes_every_name 950tests/docs_src/test_session_groups.py::test_the_hook_is_a_plain_function_of_name_and_server_info 951[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial004.py] 952tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial005.py] 953[gw4] [ 7%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-03-26] 954[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial005.py] 955[gw8] [ 7%] PASSED tests/docs_src/test_session_groups.py::test_the_hook_is_a_plain_function_of_name_and_server_info 956tests/docs_src/test_session_groups.py::test_the_key_is_prefixed_but_the_wire_name_is_not 957tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-06-18] 958tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial006.py] 959[gw6] [ 7%] PASSED tests/docs_src/test_handling_errors.py::test_mcp_error_only_fires_on_the_raising_path 960[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial006.py] 961tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial007.py] 962[gw0] [ 7%] PASSED tests/client/auth/extensions/test_client_credentials.py::test_a_refused_authorization_server_is_forgotten_so_the_next_request_rediscovers[jwt] 963tests/docs_src/test_handling_errors.py::test_any_other_exception_is_a_crash_the_model_sees_generically 964[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial007.py] 965tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial008.py] 966[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial008.py] 967tests/client/auth/extensions/test_identity_assertion.py::test_on_401_exchanges_assertion_at_configured_issuer_and_retries 968tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial009.py] 969[gw4] [ 7%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-06-18] 970[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/structured_output/tutorial009.py] 971tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-11-25] 972tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial001.py] 973[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial001.py] 974tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial002.py] 975[gw1] [ 7%] PASSED tests/client/test_auth.py::test_legacy_fallback_metadata_naming_a_different_issuer_is_refused 976[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial002.py] 977tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] 978[gw4] [ 7%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_tools-body0-2025-11-25] 979tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial003.py] 980[gw0] [ 7%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_on_401_exchanges_assertion_at_configured_issuer_and_retries 981tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2024-11-05] 982[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial003.py] 983tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_anyio.py] 984tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted 985[gw3] [ 7%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_prompts-prompts/list] 986[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_anyio.py] 987[gw8] [ 7%] PASSED tests/docs_src/test_session_groups.py::test_the_key_is_prefixed_but_the_wire_name_is_not 988tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] 989tests/docs_src/test_session_groups.py::test_call_tool_routes_to_the_owning_server 990tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_asyncio.py] 991[gw4] [ 7%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2024-11-05] 992[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_asyncio.py] 993tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_trio.py] 994tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-03-26] 995[gw0] [ 7%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_resource_server_metadata_is_never_consulted 996[gw1] [ 7%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[401] 997tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] 998[gw9] [ 7%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial004_trio.py] 999tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial005.py] 1000tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion 1001[gw2] [ 8%] PASSED tests/client/test_client.py::test_client_call_tool 1002[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial005.py] 1003tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial006.py] 1004tests/client/test_client.py::test_read_resource 1005[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_404_at_configured_issuer_raises_before_minting_assertion 1006[gw4] [ 8%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-03-26] 1007[gw7] [ 8%] PASSED tests/docs_src/test_authorization.py::test_get_access_token_is_the_callers_access_token 1008tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises 1009tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-06-18] 1010tests/docs_src/test_caching.py::test_a_mapped_method_carries_the_configured_hint 1011[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_5xx_stops_discovery_and_raises 1012[gw4] [ 8%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-06-18] 1013tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion 1014tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-11-25] 1015[gw1] [ 8%] PASSED tests/client/test_auth.py::test_legacy_fallback_without_metadata_re_registers_instead_of_presenting_credentials_bound_elsewhere[403-insufficient-scope] 1016[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_wrong_issuer_is_rejected_before_minting_assertion 1017[gw4] [ 8%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_prompts-body1-2025-11-25] 1018tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] 1019tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2024-11-05] 1020tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion 1021[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_asm_with_off_origin_token_endpoint_is_rejected_before_minting_assertion 1022[gw4] [ 8%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2024-11-05] 1023[gw7] [ 8%] PASSED tests/docs_src/test_caching.py::test_a_mapped_method_carries_the_configured_hint 1024[gw3] [ 8%] PASSED tests/client/test_list_methods_cursor.py::test_list_methods_params_parameter[list_resource_templates-resources/templates/list] 1025tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured 1026tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation 1027tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-03-26] 1028tests/docs_src/test_caching.py::test_a_hint_without_a_scope_stays_private 1029[gw1] [ 8%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[500] 1030tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] 1031[gw4] [ 8%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-03-26] 1032[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_insufficient_scope_unions_challenged_scope_with_configured 1033[gw6] [ 8%] PASSED tests/docs_src/test_handling_errors.py::test_any_other_exception_is_a_crash_the_model_sees_generically 1034tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-06-18] 1035tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize 1036tests/docs_src/test_handling_errors.py::test_resource_not_found_error_maps_to_invalid_params 1037[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_403_without_insufficient_scope_does_not_reauthorize 1038[gw4] [ 8%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-06-18] 1039tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error 1040tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-11-25] 1041[gw1] [ 8%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[503] 1042tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] 1043[gw7] [ 8%] PASSED tests/docs_src/test_caching.py::test_a_hint_without_a_scope_stays_private 1044[gw3] [ 8%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_strict_server_validation 1045tests/docs_src/test_caching.py::test_an_unmapped_method_stays_immediately_stale_and_private 1046[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_token_endpoint_error_surfaces_as_oauth_token_error 1047[gw4] [ 8%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resources-body2-2025-11-25] 1048tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret 1049tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2024-11-05] 1050[gw8] [ 8%] PASSED tests/docs_src/test_session_groups.py::test_call_tool_routes_to_the_owning_server 1051tests/docs_src/test_session_groups.py::test_disconnect_removes_every_component_of_that_server 1052tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server 1053[gw7] [ 8%] PASSED tests/docs_src/test_caching.py::test_an_unmapped_method_stays_immediately_stale_and_private 1054[gw4] [ 8%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2024-11-05] 1055[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_client_secret_basic_sends_basic_header_not_body_secret 1056tests/docs_src/test_caching.py::test_a_non_cacheable_method_is_rejected_at_construction 1057tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-03-26] 1058tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing 1059[gw3] [ 8%] PASSED tests/client/test_list_methods_cursor.py::test_list_tools_with_lowlevel_server 1060[gw2] [ 8%] PASSED tests/client/test_client.py::test_read_resource 1061tests/client/test_client.py::test_read_resource_error_propagates 1062tests/client/test_list_roots_callback.py::test_list_roots_callback 1063[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_stored_token_is_reused_without_reauthorizing 1064tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm 1065[gw6] [ 8%] PASSED tests/docs_src/test_handling_errors.py::test_resource_not_found_error_maps_to_invalid_params 1066tests/docs_src/test_handling_errors.py::test_raise_exceptions_does_not_turn_a_tool_error_into_a_traceback 1067[gw1] [ 8%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_request_stops_the_flow_and_keeps_stored_credentials[429] 1068tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers 1069[gw4] [ 8%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-03-26] 1070tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-06-18] 1071[gw7] [ 8%] PASSED tests/docs_src/test_caching.py::test_a_non_cacheable_method_is_rejected_at_construction 1072tests/docs_src/test_caching.py::test_the_handler_value_wins_over_the_map_per_field 1073[gw4] [ 8%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-06-18] 1074[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_second_401_re_exchanges_without_refetching_asm 1075tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-11-25] 1076tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request 1077[gw7] [ 8%] PASSED tests/docs_src/test_caching.py::test_the_handler_value_wins_over_the_map_per_field 1078[gw1] [ 8%] PASSED tests/client/test_auth.py::test_a_failing_resource_metadata_location_does_not_matter_when_another_one_answers 1079[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/subscriptions/tutorial006.py] 1080tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling 1081tests/docs_src/test_caching.py::test_the_client_program_on_the_page_makes_three_fetches_for_four_calls 1082tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/testing/tutorial001.py] 1083[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/testing/tutorial001.py] 1084tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial001.py] 1085[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial001.py] 1086tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial002.py] 1087[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_no_configured_scope_omits_scope_and_backfills_from_request 1088[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial002.py] 1089[gw4] [ 8%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[list_resource_templates-body3-2025-11-25] 1090tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2024-11-05] 1091tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial003.py] 1092tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected 1093[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_client_secret_is_rejected 1094[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial003.py] 1095[gw8] [ 8%] PASSED tests/docs_src/test_session_groups.py::test_disconnect_removes_every_component_of_that_server 1096tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected 1097tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial004.py] 1098[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_empty_issuer_is_rejected 1099tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports 1100[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial004.py] 1101tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial005.py] 1102[gw0] [ 8%] PASSED tests/client/auth/extensions/test_identity_assertion.py::test_origin_normalizes_default_ports 1103[gw4] [ 8%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2024-11-05] 1104[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/tools/tutorial005.py] 1105tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial001.py] 1106[gw7] [ 8%] PASSED tests/docs_src/test_caching.py::test_the_client_program_on_the_page_makes_three_fetches_for_four_calls 1107tests/docs_src/test_caching.py::test_caching_is_on_by_default_the_second_call_makes_no_fetch 1108tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-03-26] 1109[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial001.py] 1110tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial002.py] 1111tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation 1112[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial002.py] 1113tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial003.py] 1114tests/docs_src/test_shape.py::test_private_mcp_import_detector 1115[gw9] [ 8%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial003.py] 1116tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial004.py] 1117[gw5] [ 9%] PASSED tests/client/test_stdio.py::test_an_eperm_group_that_outlives_the_grace_period_is_still_sigkilled 1118tests/client/test_stdio.py::test_the_grace_wait_reads_returncode_so_trio_can_reap_the_leaders_zombie[asyncio] 1119[gw0] [ 9%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_generation 1120[gw7] [ 9%] PASSED tests/docs_src/test_caching.py::test_caching_is_on_by_default_the_second_call_makes_no_fetch 1121[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial004.py] 1122tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial005.py] 1123tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness 1124tests/docs_src/test_caching.py::test_a_hintless_result_is_not_cached_by_default 1125[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial005.py] 1126tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial006.py] 1127[gw4] [ 9%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-03-26] 1128tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-06-18] 1129[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_private_mcp_import_detector 1130[gw1] [ 9%] PASSED tests/client/test_auth.py::test_legacy_fallback_accepts_a_root_slash_issuer_for_a_server_url_in_any_spelling 1131tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] 1132[gw3] [ 9%] PASSED tests/client/test_list_roots_callback.py::test_list_roots_callback 1133[gw0] [ 9%] PASSED tests/client/test_auth.py::TestPKCEParameters::test_pkce_uniqueness 1134tests/client/test_auth.py::TestOAuthContext::test_oauth_provider_initialization 1135tests/docs_src/test_shape.py::test_retired_name_detector 1136[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_retired_name_detector 1137tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001.py] 1138[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001.py] 1139tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001_client.py] 1140[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial006.py] 1141tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial007.py] 1142[gw7] [ 9%] PASSED tests/docs_src/test_caching.py::test_a_hintless_result_is_not_cached_by_default 1143[gw4] [ 9%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-06-18] 1144tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-11-25] 1145[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial007.py] 1146tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial008.py] 1147tests/client/test_logging_callback.py::test_logging_callback 1148[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial001_client.py] 1149tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial002.py] 1150[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial002.py] 1151tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial003.py] 1152[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/apps/tutorial003.py] 1153tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial001.py] 1154[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthContext::test_oauth_provider_initialization 1155tests/client/test_auth.py::TestOAuthContext::test_context_url_parsing 1156[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthContext::test_context_url_parsing 1157[gw4] [ 9%] PASSED tests/client/test_session.py::test_cache_hints_from_a_legacy_server_never_reach_the_result[read_resource-body4-2025-11-25] 1158tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[call_tool-body0] 1159[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial001.py] 1160tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial002.py] 1161tests/docs_src/test_caching.py::test_cache_none_makes_every_call_a_round_trip 1162[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial002.py] 1163tests/client/test_auth.py::TestOAuthContext::test_token_validity_checking 1164[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/troubleshooting/tutorial008.py] 1165tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial001.py] 1166[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial001.py] 1167tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial002.py] 1168[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial002.py] 1169tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial003.py] 1170[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial003.py] 1171tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial004.py] 1172[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthContext::test_token_validity_checking 1173tests/client/test_auth.py::TestOAuthContext::test_clear_tokens 1174tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial003.py] 1175[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial003.py] 1176tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial004.py] 1177[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial004.py] 1178tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial005.py] 1179[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial005.py] 1180tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial006.py] 1181[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/asgi/tutorial006.py] 1182tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial001.py] 1183[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthContext::test_clear_tokens 1184tests/client/test_auth.py::TestOAuthFlow::test_build_protected_resource_discovery_urls 1185[gw2] [ 9%] PASSED tests/client/test_client.py::test_read_resource_error_propagates 1186[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial004.py] 1187tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial005.py] 1188[gw9] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/uri_templates/tutorial005.py] 1189[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial001.py] 1190tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial002.py] 1191[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/authorization/tutorial002.py] 1192tests/client/test_client.py::test_raise_exceptions_propagates_handler_error_on_modern_inproc_path 1193[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthFlow::test_build_protected_resource_discovery_urls 1194tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial001.py] 1195tests/client/test_auth.py::TestOAuthFlow::test_create_oauth_metadata_request 1196[gw4] [ 9%] PASSED tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[call_tool-body0] 1197tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[get_prompt-body1] 1198[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial001.py] 1199tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial002.py] 1200[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial002.py] 1201tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial003.py] 1202[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthFlow::test_create_oauth_metadata_request 1203tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_legacy_fallback_when_no_prm 1204[gw4] [ 9%] PASSED tests/client/test_session.py::test_a_2026_result_type_tag_from_a_legacy_server_never_reaches_the_result[get_prompt-body1] 1205tests/client/test_session.py::test_session_call_tool_returns_input_required_result_when_opted_in 1206[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/caching/tutorial003.py] 1207tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001.py] 1208[gw7] [ 9%] PASSED tests/docs_src/test_caching.py::test_cache_none_makes_every_call_a_round_trip 1209tests/docs_src/test_caching.py::test_refresh_refetches_and_replaces_the_cached_entry 1210[gw7] [ 9%] PASSED tests/docs_src/test_caching.py::test_refresh_refetches_and_replaces_the_cached_entry 1211tests/docs_src/test_caching.py::test_bypass_fetches_without_reading_or_writing_the_cache 1212[gw7] [ 9%] PASSED tests/docs_src/test_caching.py::test_bypass_fetches_without_reading_or_writing_the_cache 1213[gw1] [ 9%] PASSED tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-discovery-failed] 1214tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-metadata-without-registration-endpoint] 1215[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_legacy_fallback_when_no_prm 1216tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_path_aware_when_auth_server_has_path 1217[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001.py] 1218tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001_client.py] 1219tests/docs_src/test_caching.py::test_an_expired_entry_is_not_revived_when_the_refetch_fails 1220[gw6] [ 9%] PASSED tests/docs_src/test_handling_errors.py::test_raise_exceptions_does_not_turn_a_tool_error_into_a_traceback 1221[gw0] [ 9%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_path_aware_when_auth_server_has_path 1222[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial001_client.py] 1223tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial002.py] 1224tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_no_path 1225tests/docs_src/test_handling_errors.py::test_a_title_the_template_knows_reads_normally 1226[gw1] [ 9%] PASSED tests/client/test_auth.py::test_issuer_is_not_stamped_when_registration_falls_back_to_the_resource_origin[asm-metadata-without-registration-endpoint] 1227[gw2] [ 9%] PASSED tests/client/test_client.py::test_raise_exceptions_propagates_handler_error_on_modern_inproc_path 1228tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer 1229[gw8] [ 9%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial002.py] 1230tests/client/test_client.py::test_raise_exceptions_false_sanitizes_handler_error_on_modern_inproc_path 1231[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_no_path 1232tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial003.py] 1233[gw4] [ 10%] PASSED tests/client/test_session.py::test_session_call_tool_returns_input_required_result_when_opted_in 1234tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_only_slash 1235tests/client/test_session.py::test_call_tool_threads_input_responses_and_request_state_into_params 1236[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial003.py] 1237tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial004.py] 1238[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_root_when_auth_server_has_only_slash 1239tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_order 1240[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial004.py] 1241tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial005.py] 1242[gw1] [ 10%] PASSED tests/client/test_auth.py::test_issuer_is_stamped_when_same_origin_fallback_register_is_on_the_discovered_issuer 1243[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial005.py] 1244tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial006.py] 1245[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_order 1246[gw4] [ 10%] PASSED tests/client/test_session.py::test_call_tool_threads_input_responses_and_request_state_into_params 1247tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_conditions 1248tests/client/test_session.py::test_session_call_tool_raises_on_input_required_without_opt_in 1249tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] 1250[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial006.py] 1251tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial007.py] 1252[gw7] [ 10%] PASSED tests/docs_src/test_caching.py::test_an_expired_entry_is_not_revived_when_the_refetch_fails 1253[gw2] [ 10%] PASSED tests/client/test_client.py::test_raise_exceptions_false_sanitizes_handler_error_on_modern_inproc_path 1254[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client/tutorial007.py] 1255tests/client/test_client.py::test_modern_inproc_path_refuses_server_initiated_requests 1256tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial001.py] 1257tests/docs_src/test_caching.py::test_two_concurrent_identical_calls_are_two_fetches 1258[gw1] [ 10%] PASSED tests/client/test_caching.py::test_a_set_entry_round_trips_through_get[InMemoryResponseCacheStore] 1259[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial001.py] 1260tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial002.py] 1261tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] 1262[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial002.py] 1263tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial003.py] 1264[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_oauth_discovery_fallback_conditions 1265[gw4] [ 10%] PASSED tests/client/test_session.py::test_session_call_tool_raises_on_input_required_without_opt_in 1266[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial003.py] 1267tests/client/test_auth.py::TestOAuthFallback::test_handle_metadata_response_success 1268tests/client/test_session.py::test_session_get_prompt_returns_input_required_result_when_opted_in 1269[gw1] [ 10%] PASSED tests/client/test_caching.py::test_get_misses_for_a_key_never_set[InMemoryResponseCacheStore] 1270tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial004.py] 1271tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] 1272[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_callbacks/tutorial004.py] 1273tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial001.py] 1274tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/whats_new/tutorial001.py] 1275[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial001.py] 1276[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_handle_metadata_response_success 1277[gw7] [ 10%] PASSED tests/docs_src/test_caching.py::test_two_concurrent_identical_calls_are_two_fetches 1278tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial002.py] 1279tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm 1280[gw1] [ 10%] PASSED tests/client/test_caching.py::test_keys_differing_in_only_one_field_do_not_collide[InMemoryResponseCacheStore] 1281[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_uses_only_public_mcp_modules[docs_src/whats_new/tutorial001.py] 1282tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial001.py] 1283tests/client/test_caching.py::test_swapped_params_key_and_partition_values_are_distinct_keys[InMemoryResponseCacheStore] 1284tests/docs_src/test_caching.py::test_a_session_tier_call_always_makes_the_round_trip 1285[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial002.py] 1286tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial003.py] 1287[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial001.py] 1288tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial001_client.py] 1289[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_www_auth_scope_over_prm 1290[gw1] [ 10%] PASSED tests/client/test_caching.py::test_swapped_params_key_and_partition_values_are_distinct_keys[InMemoryResponseCacheStore] 1291[gw2] [ 10%] PASSED tests/client/test_client.py::test_modern_inproc_path_refuses_server_initiated_requests 1292tests/client/test_client.py::test_get_prompt 1293tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] 1294[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial003.py] 1295tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial004.py] 1296[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial001_client.py] 1297tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial002.py] 1298[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial002.py] 1299tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial003.py] 1300tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope 1301[gw4] [ 10%] PASSED tests/client/test_session.py::test_session_get_prompt_returns_input_required_result_when_opted_in 1302[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/client_transports/tutorial004.py] 1303tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial001.py] 1304[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial001.py] 1305tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial002.py] 1306tests/client/test_session.py::test_session_read_resource_returns_input_required_result_when_opted_in 1307[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_prioritize_prm_scopes_when_no_www_auth_scope 1308tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth 1309[gw6] [ 10%] PASSED tests/docs_src/test_handling_errors.py::test_a_title_the_template_knows_reads_normally 1310[gw1] [ 10%] PASSED tests/client/test_caching.py::test_keys_with_field_values_that_concatenate_identically_do_not_collide[InMemoryResponseCacheStore] 1311tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] 1312[gw7] [ 10%] PASSED tests/docs_src/test_caching.py::test_a_session_tier_call_always_makes_the_round_trip 1313tests/docs_src/test_caching.py::test_a_custom_store_requires_a_partition 1314tests/docs_src/test_handling_errors.py::test_a_bad_argument_is_an_info_line_not_a_crash 1315[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial002.py] 1316tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial003.py] 1317[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/completions/tutorial003.py] 1318tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial001.py] 1319[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial001.py] 1320tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial002.py] 1321[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_omit_scope_when_no_prm_scopes_or_www_auth 1322[gw1] [ 10%] PASSED tests/client/test_caching.py::test_set_replaces_the_entry_for_an_existing_key[InMemoryResponseCacheStore] 1323tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] 1324[gw1] [ 10%] PASSED tests/client/test_caching.py::test_delete_removes_only_the_given_key[InMemoryResponseCacheStore] 1325[gw7] [ 10%] PASSED tests/docs_src/test_caching.py::test_a_custom_store_requires_a_partition 1326tests/docs_src/test_caching.py::test_a_custom_store_with_an_in_process_server_requires_target_id 1327[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial002.py] 1328tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial003.py] 1329[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/context/tutorial003.py] 1330tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial001.py] 1331tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] 1332[gw1] [ 10%] PASSED tests/client/test_caching.py::test_delete_is_idempotent[InMemoryResponseCacheStore] 1333[gw6] [ 10%] PASSED tests/docs_src/test_handling_errors.py::test_a_bad_argument_is_an_info_line_not_a_crash 1334[gw8] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial001.py] 1335tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial002.py] 1336[gw7] [ 10%] PASSED tests/docs_src/test_caching.py::test_a_custom_store_with_an_in_process_server_requires_target_id 1337tests/docs_src/test_caching.py::test_the_wire_presence_check_the_page_recommends_works 1338[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/apps/tutorial003.py] 1339tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial001.py] 1340[gw9] [ 10%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial001.py] 1341tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial002.py] 1342[gw4] [ 10%] PASSED tests/client/test_session.py::test_session_read_resource_returns_input_required_result_when_opted_in 1343tests/client/test_session.py::test_a_late_ack_for_a_closed_driver_listen_reaches_message_handler 1344tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] 1345tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code 1346[gw0] [ 10%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_token_exchange_request_authorization_code 1347tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request 1348[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial002.py] 1349tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial003.py] 1350[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial003.py] 1351[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial002.py] 1352tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial003.py] 1353tests/docs_src/test_identity_assertion.py::test_the_provider_is_an_httpx_auth_but_not_an_oauth_client_provider 1354[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_refresh_token_request 1355[gw7] [ 11%] PASSED tests/docs_src/test_caching.py::test_the_wire_presence_check_the_page_recommends_works 1356tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial004.py] 1357[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/dependencies/tutorial004.py] 1358tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial001.py] 1359[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial001.py] 1360tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial002.py] 1361[gw4] [ 11%] PASSED tests/client/test_session.py::test_a_late_ack_for_a_closed_driver_listen_reaches_message_handler 1362[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial002.py] 1363tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial003.py] 1364[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial003.py] 1365tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial004.py] 1366[gw1] [ 11%] PASSED tests/client/test_caching.py::test_clear_removes_every_entry_across_methods_and_partitions[InMemoryResponseCacheStore] 1367tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config 1368[gw1] [ 11%] PASSED tests/client/test_caching.py::test_cache_config_defaults_construct_an_unshared_zero_ttl_config 1369tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction 1370[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_custom_store_without_a_partition_is_rejected_at_construction 1371tests/client/test_session.py::test_a_graceful_result_does_not_outrun_the_events_that_preceded_it 1372tests/docs_src/test_client.py::test_connected_properties_are_populated_inside_the_block 1373[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial004.py] 1374tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial005.py] 1375tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange 1376[gw0] [ 11%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_token_exchange 1377tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token 1378[gw6] [ 11%] PASSED tests/docs_src/test_identity_assertion.py::test_the_provider_is_an_httpx_auth_but_not_an_oauth_client_provider 1379tests/docs_src/test_identity_assertion.py::test_main_is_the_main_from_the_oauth_clients_page 1380[gw6] [ 11%] PASSED tests/docs_src/test_identity_assertion.py::test_main_is_the_main_from_the_oauth_clients_page 1381tests/docs_src/test_identity_assertion.py::test_a_client_secret_is_required 1382[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial003.py] 1383tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial004.py] 1384[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/deploy/tutorial004.py] 1385tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial001.py] 1386[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial001.py] 1387tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial002.py] 1388[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial002.py] 1389tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial003.py] 1390tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs 1391[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_custom_store_with_an_explicit_partition_constructs 1392tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction 1393[gw1] [ 11%] PASSED tests/client/test_caching.py::test_an_empty_target_id_is_rejected_at_construction 1394tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction 1395[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_negative_default_ttl_is_rejected_at_construction 1396[gw6] [ 11%] PASSED tests/docs_src/test_identity_assertion.py::test_a_client_secret_is_required 1397tests/docs_src/test_identity_assertion.py::test_an_issuer_is_required 1398[gw6] [ 11%] PASSED tests/docs_src/test_identity_assertion.py::test_an_issuer_is_required 1399[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial005.py] 1400tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial006.py] 1401[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/asgi/tutorial006.py] 1402tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one 1403[gw7] [ 11%] PASSED tests/docs_src/test_client.py::test_connected_properties_are_populated_inside_the_block 1404tests/docs_src/test_client.py::test_a_client_is_not_reusable_after_the_block_ends 1405tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/authorization/tutorial001.py] 1406[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/authorization/tutorial001.py] 1407tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/authorization/tutorial002.py] 1408[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial003.py] 1409[gw2] [ 11%] PASSED tests/client/test_client.py::test_get_prompt 1410tests/client/test_client.py::test_client_session_property_before_enter 1411tests/docs_src/test_identity_assertion.py::test_the_id_jag_is_a_typed_jwt_carrying_the_claims_the_page_lists 1412[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_new_entry_past_the_cap_evicts_the_least_recently_used_one 1413[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/authorization/tutorial002.py] 1414tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial001.py] 1415[gw7] [ 11%] PASSED tests/docs_src/test_client.py::test_a_client_is_not_reusable_after_the_block_ends 1416[gw6] [ 11%] PASSED tests/docs_src/test_identity_assertion.py::test_the_id_jag_is_a_typed_jwt_carrying_the_claims_the_page_lists 1417tests/docs_src/test_identity_assertion.py::test_a_forged_assertion_is_rejected 1418[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial001.py] 1419tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial002.py] 1420tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial004.py] 1421tests/docs_src/test_client.py::test_list_tools_returns_the_full_definition 1422tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency 1423[gw6] [ 11%] PASSED tests/docs_src/test_identity_assertion.py::test_a_forged_assertion_is_rejected 1424[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/elicitation/tutorial004.py] 1425[gw2] [ 11%] PASSED tests/client/test_client.py::test_client_session_property_before_enter 1426tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial001.py] 1427tests/docs_src/test_identity_assertion.py::test_an_assertion_for_another_audience_is_rejected 1428tests/client/test_client.py::test_client_reentry_raises_runtime_error 1429[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_get_refreshes_an_entrys_recency 1430tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting 1431[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial001.py] 1432[gw7] [ 11%] PASSED tests/docs_src/test_client.py::test_list_tools_returns_the_full_definition 1433[gw6] [ 11%] PASSED tests/docs_src/test_identity_assertion.py::test_an_assertion_for_another_audience_is_rejected 1434tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial002.py] 1435[gw1] [ 11%] PASSED tests/client/test_caching.py::test_replacing_an_entry_at_the_cap_refreshes_its_recency_without_evicting 1436tests/docs_src/test_client.py::test_get_display_name_prefers_the_title 1437tests/docs_src/test_identity_assertion.py::test_an_assertion_for_an_unknown_resource_is_rejected 1438tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap 1439[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial002.py] 1440tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003.py] 1441[gw7] [ 11%] PASSED tests/docs_src/test_client.py::test_get_display_name_prefers_the_title 1442[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_touched_list_entry_survives_read_key_churn_through_the_cap 1443[gw6] [ 11%] PASSED tests/docs_src/test_identity_assertion.py::test_an_assertion_for_an_unknown_resource_is_rejected 1444tests/docs_src/test_client.py::test_call_tool_result_has_three_things_to_read 1445[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003.py] 1446tests/docs_src/test_identity_assertion.py::test_a_replayed_assertion_is_rejected 1447tests/client/test_caching.py::test_a_zero_cap_disables_eviction 1448tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003_client.py] 1449[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial003_client.py] 1450[gw1] [ 11%] PASSED tests/client/test_caching.py::test_a_zero_cap_disables_eviction 1451tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot 1452[gw1] [ 11%] PASSED tests/client/test_caching.py::test_deleting_an_entry_frees_its_cap_slot 1453[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial002.py] 1454tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial003.py] 1455[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/caching/tutorial003.py] 1456tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial001.py] 1457[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial001.py] 1458tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial001_client.py] 1459[gw9] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial001_client.py] 1460tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial002.py] 1461tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004.py] 1462[gw8] [ 11%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004.py] 1463tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004_client.py] 1464[gw6] [ 12%] PASSED tests/docs_src/test_identity_assertion.py::test_a_replayed_assertion_is_rejected 1465tests/docs_src/test_identity_assertion.py::test_the_metadata_advertises_the_grant_type_and_the_id_jag_profile 1466tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction 1467[gw1] [ 12%] PASSED tests/client/test_caching.py::test_a_negative_cap_is_rejected_at_construction 1468tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] 1469[gw6] [ 12%] PASSED tests/docs_src/test_identity_assertion.py::test_the_metadata_advertises_the_grant_type_and_the_id_jag_profile 1470[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial002.py] 1471[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial004_client.py] 1472tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial005.py] 1473[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial005.py] 1474[gw1] [ 12%] PASSED tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[legacy] 1475tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[pre-negotiation] 1476[gw5] [ 12%] PASSED tests/client/test_stdio.py::test_the_grace_wait_reads_returncode_so_trio_can_reap_the_leaders_zombie[asyncio] 1477tests/client/test_stdio.py::test_the_grace_wait_reads_returncode_so_trio_can_reap_the_leaders_zombie[trio] 1478[gw7] [ 12%] PASSED tests/docs_src/test_client.py::test_call_tool_result_has_three_things_to_read 1479tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006.py] 1480[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006.py] 1481tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006_client.py] 1482tests/docs_src/test_identity_assertion.py::test_the_whole_grant_is_one_token_request 1483[gw2] [ 12%] PASSED tests/client/test_client.py::test_client_reentry_raises_runtime_error 1484tests/client/test_client.py::test_client_send_progress_notification 1485tests/docs_src/test_client.py::test_a_raising_tool_is_a_result_not_an_exception 1486[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial006_client.py] 1487tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007.py] 1488[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007.py] 1489tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007_client.py] 1490[gw1] [ 12%] PASSED tests/client/test_caching.py::test_hints_from_a_non_modern_session_are_ignored[pre-negotiation] 1491tests/client/test_caching.py::test_a_legacy_session_with_a_default_ttl_caches_on_the_private_arm_only 1492[gw1] [ 12%] PASSED tests/client/test_caching.py::test_a_legacy_session_with_a_default_ttl_caches_on_the_private_arm_only 1493tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial003.py] 1494[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial003.py] 1495tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial004.py] 1496[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial004.py] 1497tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial005.py] 1498[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial005.py] 1499tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial006.py] 1500[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial006.py] 1501tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial007.py] 1502[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client/tutorial007.py] 1503tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial001.py] 1504[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial001.py] 1505tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial002.py] 1506[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial002.py] 1507tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial003.py] 1508[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial003.py] 1509tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial004.py] 1510[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_callbacks/tutorial004.py] 1511tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial001.py] 1512[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial001.py] 1513tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial002.py] 1514[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial002.py] 1515tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial003.py] 1516[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial003.py] 1517tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial004.py] 1518[gw7] [ 12%] PASSED tests/docs_src/test_client.py::test_a_raising_tool_is_a_result_not_an_exception 1519tests/docs_src/test_client.py::test_an_unknown_tool_name_is_a_result_not_an_exception 1520[gw7] [ 12%] PASSED tests/docs_src/test_client.py::test_an_unknown_tool_name_is_a_result_not_an_exception 1521tests/docs_src/test_client.py::test_resources_and_templates_are_two_separate_lists 1522[gw2] [ 12%] PASSED tests/client/test_client.py::test_client_send_progress_notification 1523tests/client/test_client.py::test_client_subscribe_resource 1524[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/extensions/tutorial007_client.py] 1525tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001.py] 1526[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001.py] 1527tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001_client.py] 1528[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/first_steps/tutorial001_client.py] 1529tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial001.py] 1530[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial001.py] 1531tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial002.py] 1532[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial002.py] 1533tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial003.py] 1534[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial003.py] 1535tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial004.py] 1536[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/handling_errors/tutorial004.py] 1537tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial001.py] 1538[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial001.py] 1539tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial002.py] 1540[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/identity_assertion/tutorial002.py] 1541tests/docs_src/test_shape.py::test_example_imports[docs_src/index/tutorial001.py] 1542[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/index/tutorial001.py] 1543tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001.py] 1544[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001.py] 1545tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001_client.py] 1546[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial001_client.py] 1547tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial002.py] 1548[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/client_transports/tutorial004.py] 1549tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial001.py] 1550[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial001.py] 1551tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial002.py] 1552[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial002.py] 1553tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial003.py] 1554[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial002.py] 1555tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial003.py] 1556[gw0] [ 12%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_basic_auth_refresh_token 1557tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method 1558[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/completions/tutorial003.py] 1559tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial001.py] 1560[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/legacy_clients/tutorial003.py] 1561tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial001.py] 1562[gw9] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial001.py] 1563[gw8] [ 12%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial001.py] 1564tests/client/test_caching.py::test_entries_never_cross_negotiated_eras_on_a_shared_store 1565[gw1] [ 12%] PASSED tests/client/test_caching.py::test_entries_never_cross_negotiated_eras_on_a_shared_store 1566tests/client/test_caching.py::test_coordinators_negotiating_the_same_era_share_entries_through_the_store 1567[gw1] [ 12%] PASSED tests/client/test_caching.py::test_coordinators_negotiating_the_same_era_share_entries_through_the_store 1568tests/client/test_caching.py::test_an_explicit_zero_ttl_is_not_overridden_by_the_default_ttl 1569[gw1] [ 12%] PASSED tests/client/test_caching.py::test_an_explicit_zero_ttl_is_not_overridden_by_the_default_ttl 1570tests/client/test_caching.py::test_a_hint_absent_modern_result_uses_the_default_ttl_privately 1571[gw1] [ 12%] PASSED tests/client/test_caching.py::test_a_hint_absent_modern_result_uses_the_default_ttl_privately 1572tests/client/test_caching.py::test_a_ttl_above_24_hours_is_clamped_to_the_cap 1573[gw1] [ 12%] PASSED tests/client/test_caching.py::test_a_ttl_above_24_hours_is_clamped_to_the_cap 1574tests/client/test_caching.py::test_a_public_result_lands_on_the_public_arm_and_clears_the_private_arm 1575[gw1] [ 12%] PASSED tests/client/test_caching.py::test_a_public_result_lands_on_the_public_arm_and_clears_the_private_arm 1576tests/client/test_caching.py::test_arm_key_layout_is_pinned_for_shared_store_compatibility 1577[gw1] [ 13%] PASSED tests/client/test_caching.py::test_arm_key_layout_is_pinned_for_shared_store_compatibility 1578tests/client/test_caching.py::test_public_entries_do_not_cross_partitions_by_default 1579[gw3] [ 13%] PASSED tests/client/test_logging_callback.py::test_logging_callback 1580tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial002.py] 1581[gw8] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lifespan/tutorial002.py] 1582tests/docs_src/test_shape.py::test_example_imports[docs_src/logging/tutorial001.py] 1583[gw8] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/logging/tutorial001.py] 1584tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial001.py] 1585[gw8] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial001.py] 1586tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial002.py] 1587[gw6] [ 13%] PASSED tests/docs_src/test_identity_assertion.py::test_the_whole_grant_is_one_token_request 1588tests/docs_src/test_index.py::test_add_tool 1589tests/client/test_notification_response.py::test_non_compliant_notification_response 1590[gw2] [ 13%] PASSED tests/client/test_client.py::test_client_subscribe_resource 1591tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial002.py] 1592[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial002.py] 1593tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial003.py] 1594[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/context/tutorial003.py] 1595tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial001.py] 1596[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial001.py] 1597tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial002.py] 1598[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial002.py] 1599tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial003.py] 1600[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial003.py] 1601tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial004.py] 1602[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/dependencies/tutorial004.py] 1603tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial001.py] 1604[gw0] [ 13%] PASSED tests/client/test_auth.py::TestOAuthFallback::test_none_auth_method 1605tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version 1606[gw0] [ 13%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_recent_protocol_version 1607tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version 1608[gw8] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial002.py] 1609tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial003.py] 1610[gw8] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial003.py] 1611tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial004.py] 1612[gw8] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial004.py] 1613tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial005.py] 1614[gw7] [ 13%] PASSED tests/docs_src/test_client.py::test_resources_and_templates_are_two_separate_lists 1615tests/docs_src/test_client.py::test_read_resource_fills_in_a_template 1616tests/client/test_client.py::test_client_unsubscribe_resource 1617[gw1] [ 13%] PASSED tests/client/test_caching.py::test_public_entries_do_not_cross_partitions_by_default 1618tests/client/test_caching.py::test_share_public_serves_public_entries_across_partitions_but_never_private_ones 1619[gw1] [ 13%] PASSED tests/client/test_caching.py::test_share_public_serves_public_entries_across_partitions_but_never_private_ones 1620tests/client/test_caching.py::test_a_private_scoped_entry_under_the_public_arm_is_not_served 1621[gw1] [ 13%] PASSED tests/client/test_caching.py::test_a_private_scoped_entry_under_the_public_arm_is_not_served 1622tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one 1623[gw7] [ 13%] PASSED tests/docs_src/test_client.py::test_read_resource_fills_in_a_template 1624tests/docs_src/test_client.py::test_resource_subscriptions_are_listen_based_on_the_modern_wire 1625[gw4] [ 13%] PASSED tests/client/test_session.py::test_a_graceful_result_does_not_outrun_the_events_that_preceded_it 1626tests/client/test_session.py::test_intercept_settles_only_the_named_listen_route_on_cancelled 1627[gw4] [ 13%] PASSED tests/client/test_session.py::test_intercept_settles_only_the_named_listen_route_on_cancelled 1628tests/client/test_session.py::test_intercept_ignores_frames_without_a_route_or_with_broken_meta 1629[gw4] [ 13%] PASSED tests/client/test_session.py::test_intercept_ignores_frames_without_a_route_or_with_broken_meta 1630tests/client/test_session.py::test_intercept_consumes_acks_for_live_routes_and_leaves_malformed_ones 1631[gw4] [ 13%] PASSED tests/client/test_session.py::test_intercept_consumes_acks_for_live_routes_and_leaves_malformed_ones 1632[gw6] [ 13%] PASSED tests/docs_src/test_index.py::test_add_tool 1633tests/docs_src/test_index.py::test_greeting_resource_template 1634[gw1] [ 13%] PASSED tests/client/test_caching.py::test_a_stale_private_entry_does_not_shadow_a_fresh_public_one 1635tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh 1636[gw0] [ 13%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_excluded_with_old_protocol_version 1637tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata 1638[gw7] [ 13%] PASSED tests/docs_src/test_client.py::test_resource_subscriptions_are_listen_based_on_the_modern_wire 1639[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial001.py] 1640tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial002.py] 1641[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial002.py] 1642tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial003.py] 1643[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial003.py] 1644tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial004.py] 1645[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/deploy/tutorial004.py] 1646tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial001.py] 1647[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial001.py] 1648tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial002.py] 1649[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial002.py] 1650tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial003.py] 1651[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial003.py] 1652tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial004.py] 1653[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/elicitation/tutorial004.py] 1654tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial001.py] 1655[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial001.py] 1656tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial002.py] 1657[gw1] [ 13%] PASSED tests/client/test_caching.py::test_an_entry_without_an_expiry_is_never_fresh 1658tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own 1659[gw1] [ 13%] PASSED tests/client/test_caching.py::test_write_deletes_the_opposite_arm_before_setting_its_own 1660tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated 1661[gw2] [ 13%] PASSED tests/client/test_client.py::test_client_unsubscribe_resource 1662tests/client/test_client.py::test_client_set_logging_level 1663[gw3] [ 13%] PASSED tests/client/test_notification_response.py::test_non_compliant_notification_response 1664[gw6] [ 13%] PASSED tests/docs_src/test_index.py::test_greeting_resource_template 1665tests/docs_src/test_legacy_clients.py::test_one_resolve_tool_serves_a_legacy_and_a_modern_client_at_once 1666[gw0] [ 13%] PASSED tests/client/test_auth.py::TestProtectedResourceMetadata::test_resource_param_included_with_protected_resource_metadata 1667tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request 1668tests/docs_src/test_client.py::test_list_prompts_describes_the_arguments 1669[gw7] [ 13%] PASSED tests/docs_src/test_client.py::test_list_prompts_describes_the_arguments 1670tests/docs_src/test_client.py::test_get_prompt_renders_the_messages 1671tests/client/test_notification_response.py::test_unexpected_content_type_sends_jsonrpc_error 1672[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial002.py] 1673tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial003.py] 1674[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial003.py] 1675tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial003_client.py] 1676[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial003_client.py] 1677tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial004.py] 1678[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial004.py] 1679tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial004_client.py] 1680[gw0] [ 13%] PASSED tests/client/test_auth.py::test_auth_flow_follows_a_same_origin_redirect_of_its_own_request 1681tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin 1682[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial004_client.py] 1683tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial005.py] 1684[gw1] [ 13%] PASSED tests/client/test_caching.py::test_an_eviction_landing_during_an_async_set_is_compensated 1685tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction 1686[gw1] [ 13%] PASSED tests/client/test_caching.py::test_a_cancellation_landing_as_the_set_commits_still_compensates_an_eviction 1687tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms 1688tests/client/test_session_claims.py::test_duplicate_claim_tag_across_extensions_rejected 1689[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial005.py] 1690tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006.py] 1691[gw9] [ 13%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006.py] 1692[gw1] [ 13%] PASSED tests/client/test_caching.py::test_a_cancellation_during_the_refresh_purge_still_purges_both_arms 1693tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006_client.py] 1694tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms 1695[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial006_client.py] 1696tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007.py] 1697[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007.py] 1698tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007_client.py] 1699[gw0] [ 14%] PASSED tests/client/test_auth.py::test_auth_flow_does_not_follow_a_redirect_of_its_own_request_to_another_origin 1700[gw1] [ 14%] PASSED tests/client/test_caching.py::test_a_cancellation_during_an_eviction_still_evicts_both_arms 1701[gw2] [ 14%] PASSED tests/client/test_client.py::test_client_set_logging_level 1702tests/client/test_client.py::test_client_list_resources_with_params 1703[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/extensions/tutorial007_client.py] 1704tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001.py] 1705tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1706tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops 1707[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_duplicate_claim_tag_across_extensions_rejected 1708tests/client/test_session_claims.py::test_claims_keyed_to_unadvertised_extension_rejected 1709[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_claims_keyed_to_unadvertised_extension_rejected 1710[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001.py] 1711tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001_client.py] 1712[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/first_steps/tutorial001_client.py] 1713tests/client/test_session_claims.py::test_empty_claim_sequence_rejected 1714[gw3] [ 14%] PASSED tests/client/test_notification_response.py::test_unexpected_content_type_sends_jsonrpc_error 1715[gw7] [ 14%] PASSED tests/docs_src/test_client.py::test_get_prompt_renders_the_messages 1716tests/client/test_notification_response.py::test_http_error_status_sends_jsonrpc_error 1717tests/docs_src/test_client.py::test_complete_suggests_values_for_an_argument 1718[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial005.py] 1719tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial006.py] 1720[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_empty_claim_sequence_rejected 1721tests/client/test_session_claims.py::test_empty_settings_count_as_an_advertised_extension 1722[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial006.py] 1723tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial007.py] 1724[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_empty_settings_count_as_an_advertised_extension 1725tests/client/test_session_claims.py::test_without_claims_the_call_tool_adapter_is_the_module_constant 1726[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_without_claims_the_call_tool_adapter_is_the_module_constant 1727[gw2] [ 14%] PASSED tests/client/test_client.py::test_client_list_resources_with_params 1728tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[None] 1729[gw0] [ 14%] PASSED tests/client/test_auth.py::test_auth_flow_stops_following_a_redirecting_request_after_a_few_hops 1730tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] 1731tests/client/test_client.py::test_client_list_resource_templates 1732[gw6] [ 14%] PASSED tests/docs_src/test_legacy_clients.py::test_one_resolve_tool_serves_a_legacy_and_a_modern_client_at_once 1733tests/docs_src/test_legacy_clients.py::test_neither_era_of_client_sees_the_resolved_parameter 1734[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/lowlevel/tutorial007.py] 1735[gw0] [ 14%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[404-True] 1736[gw3] [ 14%] PASSED tests/client/test_notification_response.py::test_http_error_status_sends_jsonrpc_error 1737tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial001.py] 1738[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial001.py] 1739tests/client/test_notification_response.py::test_http_error_on_notification_does_not_hang 1740tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] 1741tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial002.py] 1742[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial002.py] 1743[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[None] 1744tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial001.py] 1745tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial003.py] 1746tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[protocol_versions1] 1747[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial003.py] 1748tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial004.py] 1749[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial004.py] 1750tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial005.py] 1751[gw9] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_avoids_retired_api[docs_src/handling_errors/tutorial001.py] 1752[gw1] [ 14%] PASSED tests/client/test_caching.py::test_evict_key_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1753[gw3] [ 14%] PASSED tests/client/test_notification_response.py::test_http_error_on_notification_does_not_hang 1754tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1755[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/media/tutorial005.py] 1756tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial001.py] 1757[gw6] [ 14%] PASSED tests/docs_src/test_legacy_clients.py::test_neither_era_of_client_sees_the_resolved_parameter 1758tests/client/test_notification_response.py::test_invalid_json_response_sends_jsonrpc_error 1759[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_modern_adopt_activates_claims_and_routes_claimed_results[protocol_versions1] 1760[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/middleware/tutorial001.py] 1761tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial001.py] 1762tests/docs_src/test_legacy_clients.py::test_a_legacy_session_is_minted_in_process_and_a_stray_session_id_is_a_404 1763tests/client/test_session_claims.py::test_legacy_adopt_clears_active_claims 1764[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial001.py] 1765tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial002.py] 1766[gw0] [ 14%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[307-True] 1767[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial002.py] 1768tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial003.py] 1769[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial003.py] 1770tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] 1771[gw2] [ 14%] PASSED tests/client/test_client.py::test_client_list_resource_templates 1772tests/client/test_client.py::test_list_prompts 1773tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial004.py] 1774[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_legacy_adopt_clears_active_claims 1775[gw0] [ 14%] PASSED tests/client/test_auth.py::test_auth_metadata_response_says_whether_to_try_the_next_discovery_url[500-False] 1776[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial004.py] 1777tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial005.py] 1778tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-03-26-False] 1779tests/client/test_session_claims.py::test_modern_readopt_after_legacy_reactivates_claims 1780[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/mrtr/tutorial005.py] 1781tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial001.py] 1782[gw6] [ 14%] PASSED tests/docs_src/test_legacy_clients.py::test_a_legacy_session_is_minted_in_process_and_a_stray_session_id_is_a_404 1783tests/docs_src/test_legacy_clients.py::test_legacy_sessions_expire_and_are_capped_by_default 1784[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial001.py] 1785tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial002.py] 1786[gw3] [ 14%] PASSED tests/client/test_notification_response.py::test_invalid_json_response_sends_jsonrpc_error 1787[gw0] [ 14%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-03-26-False] 1788tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-06-18-True] 1789tests/client/test_notification_response.py::test_client_surfaces_jsonrpc_error_from_non_2xx_body_with_correlated_id 1790[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/oauth_clients/tutorial002.py] 1791tests/docs_src/test_shape.py::test_example_imports[docs_src/opentelemetry/tutorial001.py] 1792[gw6] [ 14%] PASSED tests/docs_src/test_legacy_clients.py::test_legacy_sessions_expire_and_are_capped_by_default 1793[gw0] [ 14%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-06-18-True] 1794tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-11-25-True] 1795tests/docs_src/test_legacy_clients.py::test_stateless_http_never_mints_a_session 1796[gw5] [ 14%] PASSED tests/client/test_stdio.py::test_the_grace_wait_reads_returncode_so_trio_can_reap_the_leaders_zombie[trio] 1797[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/opentelemetry/tutorial001.py] 1798tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial001.py] 1799[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial001.py] 1800tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial002.py] 1801tests/client/test_stdio.py::test_exiting_the_context_terminates_the_entire_process_tree 1802[gw0] [ 14%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[2025-11-25-True] 1803tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[zzz-False] 1804[gw4] [ 14%] PASSED tests/client/test_session_claims.py::test_modern_readopt_after_legacy_reactivates_claims 1805[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/pagination/tutorial002.py] 1806tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial001.py] 1807[gw8] [ 14%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial001.py] 1808tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial002.py] 1809[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/progress/tutorial002.py] 1810tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial001.py] 1811[gw0] [ 15%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[zzz-False] 1812tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[9999-99-99-False] 1813[gw0] [ 15%] PASSED tests/client/test_auth.py::test_should_include_resource_param_by_protocol_version[9999-99-99-False] 1814tests/client/test_auth.py::test_validate_resource_rejects_mismatched_resource 1815[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial001.py] 1816tests/client/test_session_claims.py::test_legacy_initialize_ad_drops_claim_bearing_identifiers 1817[gw1] [ 15%] PASSED tests/client/test_caching.py::test_a_refresh_purge_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1818[gw7] [ 15%] PASSED tests/docs_src/test_client.py::test_complete_suggests_values_for_an_argument 1819tests/docs_src/test_client.py::test_the_pagination_loop_collects_every_tool_from_a_single_page_server 1820tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1821[gw6] [ 15%] PASSED tests/docs_src/test_legacy_clients.py::test_stateless_http_never_mints_a_session 1822tests/docs_src/test_legacy_clients.py::test_stateless_http_kills_the_legacy_back_channel_and_only_the_legacy_one 1823tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial002.py] 1824[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial002.py] 1825[gw4] [ 15%] PASSED tests/client/test_session_claims.py::test_legacy_initialize_ad_drops_claim_bearing_identifiers 1826[gw3] [ 15%] PASSED tests/client/test_notification_response.py::test_client_surfaces_jsonrpc_error_from_non_2xx_body_with_correlated_id 1827tests/client/test_notification_response.py::test_client_falls_back_to_generic_error_when_non_2xx_body_is_a_jsonrpc_result 1828[gw0] [ 15%] PASSED tests/client/test_auth.py::test_validate_resource_rejects_mismatched_resource 1829tests/client/test_auth.py::test_validate_resource_accepts_matching_resource 1830tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial003.py] 1831[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial003.py] 1832tests/client/test_session_claims.py::test_legacy_ad_omits_extensions_entirely_when_every_identifier_drops 1833[gw2] [ 15%] PASSED tests/client/test_client.py::test_list_prompts 1834tests/client/test_client.py::test_complete_with_prompt_reference 1835tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial004.py] 1836[gw0] [ 15%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_matching_resource 1837tests/client/test_auth.py::test_validate_resource_custom_callback 1838[gw4] [ 15%] PASSED tests/client/test_session_claims.py::test_legacy_ad_omits_extensions_entirely_when_every_identifier_drops 1839[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial004.py] 1840tests/client/test_session_claims.py::test_modern_adopt_ad_includes_active_claim_identifiers 1841[gw2] [ 15%] PASSED tests/client/test_client.py::test_complete_with_prompt_reference 1842tests/client/test_client.py::test_client_with_url_initializes_streamable_http_transport 1843tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] 1844[gw3] [ 15%] PASSED tests/client/test_notification_response.py::test_client_falls_back_to_generic_error_when_non_2xx_body_is_a_jsonrpc_result 1845[gw0] [ 15%] PASSED tests/client/test_auth.py::test_validate_resource_custom_callback 1846tests/client/test_auth.py::test_validate_resource_accepts_root_url_with_trailing_slash 1847[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial005.py] 1848tests/client/test_notification_response.py::test_client_falls_back_to_session_terminated_when_404_body_is_malformed_json 1849tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] 1850[gw7] [ 15%] PASSED tests/docs_src/test_client.py::test_the_pagination_loop_collects_every_tool_from_a_single_page_server 1851[gw2] [ 15%] PASSED tests/client/test_client.py::test_client_with_url_initializes_streamable_http_transport 1852[gw4] [ 15%] PASSED tests/client/test_session_claims.py::test_modern_adopt_ad_includes_active_claim_identifiers 1853tests/docs_src/test_client.py::test_raise_exceptions_is_a_constructor_flag 1854[gw0] [ 15%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_root_url_with_trailing_slash 1855tests/client/test_client.py::test_client_uses_transport_directly 1856tests/examples/test_stories.py::test_story[oauth-server-http-asgi-modern] 1857tests/client/test_session_claims.py::test_discover_probe_ad_includes_claim_identifiers_at_the_probe_version 1858tests/client/test_auth.py::test_validate_resource_accepts_server_url_with_trailing_slash 1859[gw4] [ 15%] PASSED tests/client/test_session_claims.py::test_discover_probe_ad_includes_claim_identifiers_at_the_probe_version 1860tests/client/test_session_claims.py::test_discover_probe_ad_drops_claim_identifiers_at_a_legacy_probe_version 1861[gw0] [ 15%] PASSED tests/client/test_auth.py::test_validate_resource_accepts_server_url_with_trailing_slash 1862tests/client/test_auth.py::test_get_resource_url_uses_canonical_when_prm_mismatches 1863[gw3] [ 15%] PASSED tests/client/test_notification_response.py::test_client_falls_back_to_session_terminated_when_404_body_is_malformed_json 1864[gw0] [ 15%] PASSED tests/client/test_auth.py::test_get_resource_url_uses_canonical_when_prm_mismatches 1865tests/client/test_auth.py::TestRegistrationResponse::test_handle_registration_response_reads_before_accessing_text 1866[gw4] [ 15%] PASSED tests/client/test_session_claims.py::test_discover_probe_ad_drops_claim_identifiers_at_a_legacy_probe_version 1867tests/client/test_session_claims.py::test_claim_tagged_core_cannot_hijack_core_parsing 1868tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_basemodel 1869[gw0] [ 15%] PASSED tests/client/test_auth.py::TestRegistrationResponse::test_handle_registration_response_reads_before_accessing_text 1870tests/client/test_auth.py::TestRegistrationResponse::test_registration_error_names_an_unfollowed_redirect 1871[gw0] [ 15%] PASSED tests/client/test_auth.py::TestRegistrationResponse::test_registration_error_names_an_unfollowed_redirect 1872[gw4] [ 15%] PASSED tests/client/test_session_claims.py::test_claim_tagged_core_cannot_hijack_core_parsing 1873tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[True] 1874tests/client/test_auth.py::test_registration_response_with_substituted_metadata_yields_the_credentials 1875[gw0] [ 15%] PASSED tests/client/test_auth.py::test_registration_response_with_substituted_metadata_yields_the_credentials 1876tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[string] 1877[gw3] [ 15%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_basemodel 1878tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_primitive 1879[gw4] [ 15%] PASSED tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[True] 1880[gw8] [ 15%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/prompts/tutorial006.py] 1881tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] 1882[gw0] [ 15%] PASSED tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[string] 1883tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[not-a-string] 1884tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[False] 1885[gw4] [ 15%] PASSED tests/client/test_session_claims.py::test_unknown_result_type_fails_validation_with_and_without_claims[False] 1886[gw7] [ 15%] PASSED tests/docs_src/test_client.py::test_raise_exceptions_is_a_constructor_flag 1887[gw0] [ 15%] PASSED tests/client/test_auth.py::test_registration_response_does_not_seed_the_issuer_binding_from_the_body[not-a-string] 1888tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-json] 1889[gw1] [ 15%] PASSED tests/client/test_caching.py::test_an_eviction_mid_set_with_a_wedged_store_delete_returns_at_the_cleanup_bound 1890tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss 1891tests/client/test_session_claims.py::test_non_string_result_type_fails_core_validation_not_discrimination 1892[gw0] [ 15%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-json] 1893[gw3] [ 15%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_primitive 1894[gw6] [ 15%] PASSED tests/docs_src/test_legacy_clients.py::test_stateless_http_kills_the_legacy_back_channel_and_only_the_legacy_one 1895tests/docs_src/test_legacy_clients.py::test_the_legacy_notification_verb_reaches_a_legacy_client 1896tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_dict_typed 1897[gw1] [ 15%] PASSED tests/client/test_caching.py::test_a_raising_store_get_is_a_cache_miss 1898tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] 1899tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-an-object] 1900[gw0] [ 15%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-an-object] 1901[gw4] [ 15%] PASSED tests/client/test_session_claims.py::test_non_string_result_type_fails_core_validation_not_discrimination 1902tests/client/test_session_claims.py::test_adopt_built_adapter_revalidates_model_instances 1903tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-utf8] 1904[gw4] [ 15%] PASSED tests/client/test_session_claims.py::test_adopt_built_adapter_revalidates_model_instances 1905tests/client/test_session_claims.py::test_input_required_routes_to_core_arm_with_claims_active 1906[gw1] [ 15%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-value] 1907tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] 1908[gw0] [ 15%] PASSED tests/client/test_auth.py::test_a_2xx_body_that_is_not_client_information_is_an_oauth_registration_error[not-utf8] 1909[gw3] [ 15%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_dict_typed 1910tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_missing_required 1911[gw1] [ 15%] PASSED tests/client/test_caching.py::test_an_entry_rehydrated_into_the_wrong_shape_is_a_warned_miss[dict-entry] 1912tests/client/test_auth.py::test_token_exchange_reports_an_unimplemented_registered_auth_method 1913[gw0] [ 15%] PASSED tests/client/test_auth.py::test_token_exchange_reports_an_unimplemented_registered_auth_method 1914tests/client/test_auth.py::test_prepare_token_auth_leaves_a_private_key_jwt_client_to_its_provider 1915tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write 1916[gw4] [ 15%] PASSED tests/client/test_session_claims.py::test_input_required_routes_to_core_arm_with_claims_active 1917tests/client/test_session_claims.py::test_claimed_result_raises_unexpected_claimed_result_by_default 1918[gw6] [ 15%] PASSED tests/docs_src/test_legacy_clients.py::test_the_legacy_notification_verb_reaches_a_legacy_client 1919tests/docs_src/test_legacy_clients.py::test_calling_both_notification_verbs_is_safe_on_both_eras 1920[gw1] [ 15%] PASSED tests/client/test_caching.py::test_a_raising_opposite_arm_delete_aborts_the_write 1921tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss 1922[gw0] [ 15%] PASSED tests/client/test_auth.py::test_prepare_token_auth_leaves_a_private_key_jwt_client_to_its_provider 1923tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_uses_registration_endpoint_from_metadata 1924[gw0] [ 15%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_uses_registration_endpoint_from_metadata 1925tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_to_default_register_endpoint_when_no_metadata 1926[gw3] [ 16%] PASSED tests/client/test_output_schema_validation.py::test_tool_structured_output_client_side_validation_missing_required 1927[gw4] [ 16%] PASSED tests/client/test_session_claims.py::test_claimed_result_raises_unexpected_claimed_result_by_default 1928tests/client/test_session_claims.py::test_call_tool_result_path_identical_under_both_allow_claimed_values 1929[gw0] [ 16%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_to_default_register_endpoint_when_no_metadata 1930tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_when_metadata_has_no_registration_endpoint 1931tests/client/test_output_schema_validation.py::test_tool_not_listed_warning 1932[gw0] [ 16%] PASSED tests/client/test_auth.py::TestCreateClientRegistrationRequest::test_falls_back_when_metadata_has_no_registration_endpoint 1933[gw1] [ 16%] PASSED tests/client/test_caching.py::test_a_failed_opposite_arm_delete_degrades_the_key_to_a_full_miss 1934tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise 1935[gw1] [ 16%] PASSED tests/client/test_caching.py::test_a_raising_store_set_caches_nothing_and_does_not_raise 1936[gw3] [ 16%] PASSED tests/client/test_output_schema_validation.py::test_tool_not_listed_warning 1937[gw4] [ 16%] PASSED tests/client/test_session_claims.py::test_call_tool_result_path_identical_under_both_allow_claimed_values 1938tests/client/test_session_claims.py::test_call_tool_overload_matrix_narrows_statically 1939tests/client/test_caching.py::test_a_failed_set_purges_the_pre_existing_own_arm_entry 1940tests/client/test_output_schema_validation.py::test_output_schema_ref_outside_the_document_is_rejected 1941[gw1] [ 16%] PASSED tests/client/test_caching.py::test_a_failed_set_purges_the_pre_existing_own_arm_entry 1942tests/client/test_caching.py::test_eviction_with_a_raising_delete_still_bumps_the_generation 1943[gw4] [ 16%] PASSED tests/client/test_session_claims.py::test_call_tool_overload_matrix_narrows_statically 1944[gw2] [ 16%] PASSED tests/client/test_client.py::test_client_uses_transport_directly 1945tests/client/test_client.py::test_context_propagation 1946tests/client/test_session_claims.py::test_claimed_raw_passes_v2026_tools_call_surface_validation 1947[gw1] [ 16%] PASSED tests/client/test_caching.py::test_eviction_with_a_raising_delete_still_bumps_the_generation 1948tests/docs_src/test_client_callbacks.py::test_the_callback_answers_the_servers_question 1949[gw4] [ 16%] PASSED tests/client/test_session_claims.py::test_claimed_raw_passes_v2026_tools_call_surface_validation 1950[gw3] [ 16%] PASSED tests/client/test_output_schema_validation.py::test_output_schema_ref_outside_the_document_is_rejected 1951tests/docs_src/test_structured_output.py::test_structured_output_false_opts_out 1952[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial001.py] 1953tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] 1954tests/client/test_session_concurrency.py::test_concurrent_tool_calls_resolve_out_of_order_to_their_own_callers 1955tests/client/test_probe.py::test_a_valid_discover_result_is_adopted_without_initializing 1956[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial002.py] 1957tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] 1958[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial003.py] 1959[gw3] [ 16%] PASSED tests/client/test_probe.py::test_a_valid_discover_result_is_adopted_without_initializing 1960tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] 1961tests/client/test_probe.py::test_an_unparseable_discover_result_falls_back_to_initialize 1962[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/protocol_versions/tutorial004.py] 1963tests/docs_src/test_shape.py::test_example_imports[docs_src/real_host/tutorial001.py] 1964tests/client/test_auth.py::test_registration_request_sends_application_type 1965[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/real_host/tutorial001.py] 1966tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial001.py] 1967[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial001.py] 1968tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial002.py] 1969[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial002.py] 1970[gw0] [ 16%] PASSED tests/client/test_auth.py::test_registration_request_sends_application_type 1971tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_valid_tokens 1972[gw2] [ 16%] PASSED tests/client/test_client.py::test_context_propagation 1973tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial003.py] 1974tests/client/test_client.py::test_client_auto_mode_probes_discover_then_adopts 1975[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/resources/tutorial003.py] 1976tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial001.py] 1977[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial001.py] 1978tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial002.py] 1979[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial002.py] 1980tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial003.py] 1981[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/run/tutorial003.py] 1982tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial001.py] 1983[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial001.py] 1984tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial002.py] 1985[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/sampling_and_roots/tutorial002.py] 1986tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial001.py] 1987[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial001.py] 1988tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial002.py] 1989[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial002.py] 1990tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial003.py] 1991[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial003.py] 1992tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial004.py] 1993[gw8] [ 16%] PASSED tests/docs_src/test_shape.py::test_example_imports[docs_src/session_groups/tutorial004.py] 1994[gw2] [ 16%] PASSED tests/client/test_client.py::test_client_auto_mode_probes_discover_then_adopts 1995tests/client/test_client.py::test_client_auto_mode_negotiates_modern_over_a_stream_loop 1996[gw0] [ 16%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_valid_tokens 1997tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_no_tokens 1998[gw1] [ 16%] PASSED tests/docs_src/test_structured_output.py::test_structured_output_false_opts_out 1999tests/docs_src/test_structured_output.py::test_content_blocks_and_media_are_opted_out_of_structured_output 2000[gw0] [ 16%] PASSED tests/client/test_auth.py::TestAuthFlow::test_auth_flow_with_no_tokens loading 6,658 hidden lines…
8659tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] 8660[gw7] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_string_token_reaches_callback_for_int_keyed_request 8661tests/server/auth/middleware/test_bearer_auth.py::TestBearerAuthBackend::test_expired_token 8662[gw1] [ 74%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[../../etc/passwd-True] 8663tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] 8664[gw1] [ 74%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/../../b-True] 8665tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] 8666[gw1] [ 74%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[./../../etc-True] 8667tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] 8668tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int 8669[gw7] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_coerce_request_id_passes_through_non_numeric_string_and_int 8670tests/shared/test_jsonrpc_dispatcher.py::test_jsonrpc_error_response_with_null_id_is_dropped 8671[gw6] [ 74%] PASSED tests/server/auth/middleware/test_bearer_auth.py::TestBearerAuthBackend::test_expired_token 8672[gw1] [ 74%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[1.0..2.0-False] 8673tests/shared/test_path_security.py::test_contains_path_traversal[foo..bar-False] 8674[gw7] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_jsonrpc_error_response_with_null_id_is_dropped 8675tests/shared/test_jsonrpc_dispatcher.py::test_notify_without_params_omits_params_key_on_the_wire 8676[gw1] [ 74%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[foo..bar-False] 8677tests/shared/test_path_security.py::test_contains_path_traversal[..foo-False] 8678tests/server/auth/middleware/test_bearer_auth.py::TestBearerAuthBackend::test_valid_token 8679[gw1] [ 74%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..foo-False] 8680tests/shared/test_path_security.py::test_contains_path_traversal[foo..-False] 8681[gw6] [ 74%] PASSED tests/server/auth/middleware/test_bearer_auth.py::TestBearerAuthBackend::test_valid_token 8682[gw7] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_without_params_omits_params_key_on_the_wire 8683tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_request_is_answered_with_internal_error 8684[gw1] [ 74%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[foo..-False] 8685[gw7] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_request_is_answered_with_internal_error 8686tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_notification_drops_only_that_notification 8687tests/server/mcpserver/test_resolve.py::test_delete_non_empty_folder_handles_every_outcome[accept-content0-deleted /docs] 8688tests/shared/test_path_security.py::test_contains_path_traversal[..\\etc-True] 8689[gw2] [ 74%] PASSED tests/shared/test_httpx_utils.py::test_custom_parameters 8690[gw7] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_builder_exception_on_notification_drops_only_that_notification 8691[gw1] [ 74%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[..\\etc-True] 8692tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_with_bool_request_id_does_not_cancel_request_one 8693tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-http://mcp.example/mcp/] 8694tests/shared/test_path_security.py::test_contains_path_traversal[a\\..\\..\\b-True] 8695[gw1] [ 74%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a\\..\\..\\b-True] 8696[gw3] [ 74%] PASSED tests/server/mcpserver/test_extension.py::test_interceptors_run_in_registration_order_with_threaded_params 8697[gw2] [ 74%] PASSED tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-http://mcp.example/mcp/] 8698tests/server/mcpserver/test_extension.py::test_an_interceptor_context_rewrite_does_not_change_the_tool_invocation 8699tests/shared/test_path_security.py::test_contains_path_traversal[a\\b\\c-False] 8700[gw7] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancelled_with_bool_request_id_does_not_cancel_request_one 8701tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_bool_token_or_bool_progress_does_not_fire_callback 8702tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-/other/path] 8703[gw1] [ 74%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a\\b\\c-False] 8704tests/shared/test_path_security.py::test_contains_path_traversal[a/..\\..\\b-True] 8705[gw7] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_progress_with_bool_token_or_bool_progress_does_not_fire_callback 8706tests/shared/test_jsonrpc_dispatcher.py::test_request_with_bool_meta_progress_token_is_not_adopted 8707[gw1] [ 74%] PASSED tests/shared/test_path_security.py::test_contains_path_traversal[a/..\\..\\b-True] 8708[gw2] [ 74%] PASSED tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-/other/path] 8709tests/shared/test_path_security.py::test_is_absolute_path[relative/path-False] 8710tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example:8080/mcp-http://mcp.example:8080/v2/mcp] 8711[gw7] [ 74%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_with_bool_meta_progress_token_is_not_adopted 8712tests/shared/test_path_security.py::test_is_absolute_path[file.txt-False] 8713[gw1] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[relative/path-False] 8714[gw7] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[file.txt-False] 8715tests/shared/test_path_security.py::test_is_absolute_path[-False] 8716tests/shared/test_streamable_http.py::test_session_validation 8717[gw7] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[-False] 8718tests/shared/test_path_security.py::test_is_absolute_path[.-False] 8719[gw2] [ 74%] PASSED tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example:8080/mcp-http://mcp.example:8080/v2/mcp] 8720[gw7] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[.-False] 8721tests/shared/test_path_security.py::test_is_absolute_path[..-False] 8722[gw7] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[..-False] 8723tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-http://MCP.EXAMPLE:80/mcp/] 8724[gw6] [ 74%] PASSED tests/server/mcpserver/test_resolve.py::test_delete_non_empty_folder_handles_every_outcome[accept-content0-deleted /docs] 8725tests/shared/test_path_security.py::test_is_absolute_path[/-True] 8726[gw7] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/-True] 8727tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] 8728tests/server/mcpserver/test_resolve.py::test_delete_non_empty_folder_handles_every_outcome[accept-content1-kept the folder] 8729[gw7] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/etc/passwd-True] 8730tests/shared/test_path_security.py::test_is_absolute_path[/a-True] 8731[gw1] [ 74%] PASSED tests/shared/test_streamable_http.py::test_session_validation 8732[gw7] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[/a-True] 8733tests/shared/test_streamable_http.py::test_session_id_pattern 8734[gw2] [ 74%] PASSED tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-http://MCP.EXAMPLE:80/mcp/] 8735[gw3] [ 74%] PASSED tests/server/mcpserver/test_extension.py::test_an_interceptor_context_rewrite_does_not_change_the_tool_invocation 8736[gw1] [ 74%] PASSED tests/shared/test_streamable_http.py::test_session_id_pattern 8737tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated 8738tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-https://mcp.example:443/mcp] 8739tests/server/mcpserver/test_extension.py::test_short_circuited_interceptor_result_carries_the_server_info_stamp 8740[gw1] [ 74%] PASSED tests/shared/test_streamable_http.py::test_transport_whose_idle_period_ran_out_answers_as_terminated 8741tests/shared/test_path_security.py::test_is_absolute_path[C:-True] 8742tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating 8743[gw7] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:-True] 8744[gw2] [ 74%] PASSED tests/shared/test_httpx_utils.py::test_redirect_within_origin_is_followed_with_method_and_body[http://mcp.example/mcp-https://mcp.example:443/mcp] 8745tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] 8746tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://other.example/mcp] 8747[gw7] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:\\Windows-True] 8748[gw3] [ 74%] PASSED tests/server/mcpserver/test_extension.py::test_short_circuited_interceptor_result_carries_the_server_info_stamp 8749tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] 8750[gw1] [ 74%] PASSED tests/shared/test_streamable_http.py::test_transport_reports_stream_closure_when_host_exits_without_terminating 8751tests/shared/test_streamable_http.py::test_session_termination 8752tests/server/mcpserver/test_extension.py::test_extension_subclass_without_prefixed_identifier_is_rejected_at_definition 8753[gw7] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[c:/foo-True] 8754[gw2] [ 74%] PASSED tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://other.example/mcp] 8755[gw3] [ 74%] PASSED tests/server/mcpserver/test_extension.py::test_extension_subclass_without_prefixed_identifier_is_rejected_at_definition 8756tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] 8757tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://mcp.example:8080/mcp] 8758tests/server/mcpserver/test_extension.py::test_extension_without_identifier_is_rejected_at_registration 8759[gw7] [ 74%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[Z:\\-True] 8760tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] 8761[gw3] [ 75%] PASSED tests/server/mcpserver/test_extension.py::test_extension_without_identifier_is_rejected_at_registration 8762tests/server/mcpserver/test_extension.py::test_version_pinned_method_is_served_at_an_allowed_version 8763[gw2] [ 75%] PASSED tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://mcp.example:8080/mcp] 8764[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\\\server\\share-True] 8765[gw4] [ 75%] PASSED tests/server/test_runner.py::test_runner_server_middleware_wraps_notifications 8766[gw6] [ 75%] PASSED tests/server/mcpserver/test_resolve.py::test_delete_non_empty_folder_handles_every_outcome[accept-content1-kept the folder] 8767tests/shared/test_path_security.py::test_is_absolute_path[\\foo-True] 8768tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://sub.mcp.example/mcp] 8769[gw1] [ 75%] PASSED tests/shared/test_streamable_http.py::test_session_termination 8770tests/server/mcpserver/test_resolve.py::test_delete_non_empty_folder_handles_every_outcome[decline-None-declined: folder not deleted] 8771tests/server/test_runner.py::test_extract_meta_returns_none_for_absent_or_malformed 8772tests/shared/test_streamable_http.py::test_response 8773[gw4] [ 75%] PASSED tests/server/test_runner.py::test_extract_meta_returns_none_for_absent_or_malformed 8774[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\\foo-True] 8775tests/server/test_runner.py::test_extract_meta_round_trips_through_dump_params 8776tests/shared/test_path_security.py::test_is_absolute_path[C:relative-True] 8777[gw2] [ 75%] PASSED tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[http://sub.mcp.example/mcp] 8778[gw4] [ 75%] PASSED tests/server/test_runner.py::test_extract_meta_round_trips_through_dump_params 8779tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[https://mcp.example:8443/mcp] 8780tests/server/test_runner.py::test_runner_server_middleware_runs_outermost_first 8781[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[C:relative-True] 8782tests/shared/test_path_security.py::test_is_absolute_path[x:y-True] 8783[gw1] [ 75%] PASSED tests/shared/test_streamable_http.py::test_response 8784[gw2] [ 75%] PASSED tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[https://mcp.example:8443/mcp] 8785tests/shared/test_streamable_http.py::test_json_response 8786tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[ftp://mcp.example/mcp] 8787[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[x:y-True] 8788[gw4] [ 75%] PASSED tests/server/test_runner.py::test_runner_server_middleware_runs_outermost_first 8789[gw2] [ 75%] PASSED tests/shared/test_httpx_utils.py::test_redirect_outside_origin_is_not_followed[ftp://mcp.example/mcp] 8790tests/shared/test_path_security.py::test_is_absolute_path[a:debug-True] 8791[gw1] [ 75%] PASSED tests/shared/test_streamable_http.py::test_json_response 8792[gw3] [ 75%] PASSED tests/server/mcpserver/test_extension.py::test_version_pinned_method_is_served_at_an_allowed_version 8793tests/server/mcpserver/test_extension.py::test_version_pinned_method_is_method_not_found_at_a_disallowed_version 8794[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[a:debug-True] 8795tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[301] 8796tests/shared/test_path_security.py::test_is_absolute_path[1:foo-False] 8797tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[null-application-type] 8798[gw2] [ 75%] PASSED tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[301] 8799[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[1:foo-False] 8800tests/shared/test_path_security.py::test_is_absolute_path[ab:c-False] 8801tests/shared/test_streamable_http.py::test_json_response_accept_json_only 8802tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[302] 8803[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[ab:c-False] 8804[gw4] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[null-application-type] 8805tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[unimplemented-auth-method] 8806[gw4] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[unimplemented-auth-method] 8807tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[extra-grant-type] 8808[gw2] [ 75%] PASSED tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[302] 8809tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[303] 8810tests/shared/test_path_security.py::test_is_absolute_path[\u03a9:namespace-False] 8811[gw4] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[extra-grant-type] 8812tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[empty-redirect-uris] 8813[gw4] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_accepts_server_substituted_metadata[empty-redirect-uris] 8814tests/shared/test_auth.py::test_client_information_without_echoed_metadata_still_parses 8815[gw4] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_without_echoed_metadata_still_parses 8816[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\u03a9:namespace-False] 8817tests/shared/test_path_security.py::test_is_absolute_path[\xe9:foo-False] 8818tests/shared/test_auth.py::test_every_request_metadata_field_exists_on_the_client_record 8819[gw4] [ 75%] PASSED tests/shared/test_auth.py::test_every_request_metadata_field_exists_on_the_client_record 8820tests/shared/test_auth.py::test_a_registration_response_without_a_client_id_is_rejected 8821[gw2] [ 75%] PASSED tests/shared/test_httpx_utils.py::test_method_changing_redirect_of_a_post_is_not_followed[303] 8822[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_is_absolute_path[\xe9:foo-False] 8823[gw4] [ 75%] PASSED tests/shared/test_auth.py::test_a_registration_response_without_a_client_id_is_rejected 8824tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[grant_types-null] 8825tests/shared/test_path_security.py::test_safe_join_simple 8826tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[301] 8827[gw4] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[grant_types-null] 8828[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_simple 8829[gw2] [ 75%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[301] 8830tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[302] 8831tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[grant_types-empty-string] 8832[gw4] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[grant_types-empty-string] 8833tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[response_types-null] 8834[gw6] [ 75%] PASSED tests/server/mcpserver/test_resolve.py::test_delete_non_empty_folder_handles_every_outcome[decline-None-declined: folder not deleted] 8835tests/server/mcpserver/test_resolve.py::test_delete_non_empty_folder_handles_every_outcome[cancel-None-cancelled: folder not deleted] 8836tests/shared/test_path_security.py::test_safe_join_resolves_relative_base 8837[gw4] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[response_types-null] 8838tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[response_types-empty-string] 8839[gw2] [ 75%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[302] 8840tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[303] 8841[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_resolves_relative_base 8842tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape 8843[gw1] [ 75%] PASSED tests/shared/test_streamable_http.py::test_json_response_accept_json_only 8844[gw3] [ 75%] PASSED tests/server/mcpserver/test_extension.py::test_version_pinned_method_is_method_not_found_at_a_disallowed_version 8845[gw4] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[response_types-empty-string] 8846tests/server/mcpserver/test_extension.py::test_method_binding_rejects_spec_methods[tools/list] 8847[gw2] [ 75%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[303] 8848tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[redirect_uris-null] 8849tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[307] 8850[gw4] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[redirect_uris-null] 8851tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[redirect_uris-empty-string] 8852[gw7] [ 75%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_dotdot_escape 8853tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape 8854[gw3] [ 75%] PASSED tests/server/mcpserver/test_extension.py::test_method_binding_rejects_spec_methods[tools/list] 8855tests/server/mcpserver/test_extension.py::test_method_binding_rejects_spec_methods[completion/complete] 8856[gw4] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[redirect_uris-empty-string] 8857tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[application_type-null] 8858[gw4] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[application_type-null] 8859tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[application_type-empty-string] 8860[gw4] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[application_type-empty-string] 8861tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[token_endpoint_auth_method-null] 8862[gw4] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[token_endpoint_auth_method-null] 8863tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[token_endpoint_auth_method-empty-string] 8864tests/shared/test_streamable_http.py::test_json_response_missing_accept_header 8865[gw3] [ 75%] PASSED tests/server/mcpserver/test_extension.py::test_method_binding_rejects_spec_methods[completion/complete] 8866tests/server/mcpserver/test_extension.py::test_method_binding_rejects_empty_protocol_versions 8867[gw3] [ 75%] PASSED tests/server/mcpserver/test_extension.py::test_method_binding_rejects_empty_protocol_versions 8868tests/server/mcpserver/test_extension.py::test_colliding_extension_methods_are_rejected_at_registration 8869[gw3] [ 75%] PASSED tests/server/mcpserver/test_extension.py::test_colliding_extension_methods_are_rejected_at_registration 8870tests/server/mcpserver/test_extension.py::test_require_client_extension_passes_when_client_declared_it 8871[gw2] [ 75%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[307] 8872tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[308] 8873[gw4] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[token_endpoint_auth_method-empty-string] 8874tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[scope-null] 8875[gw4] [ 75%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[scope-null] 8876tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[scope-empty-string] 8877[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_balanced_then_escape 8878tests/shared/test_path_security.py::test_safe_join_allows_balanced_dotdot 8879[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_allows_balanced_dotdot 8880tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part 8881[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_part 8882tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part 8883[gw4] [ 76%] PASSED tests/shared/test_auth.py::test_client_information_reads_a_placeholder_member_as_an_omitted_key[scope-empty-string] 8884tests/shared/test_auth.py::test_a_placeholder_client_id_is_a_missing_client_id 8885[gw2] [ 76%] PASSED tests/shared/test_httpx_utils.py::test_same_origin_redirect_of_a_get_is_followed_for_every_redirect_status[308] 8886tests/shared/test_httpx_utils.py::test_https_to_http_on_same_host_is_outside_origin 8887[gw4] [ 76%] PASSED tests/shared/test_auth.py::test_a_placeholder_client_id_is_a_missing_client_id 8888[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_absolute_in_later_part 8889tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive 8890tests/shared/test_auth.py::test_client_information_that_is_not_an_object_still_fails_the_parse 8891[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_windows_drive 8892[gw4] [ 76%] PASSED tests/shared/test_auth.py::test_client_information_that_is_not_an_object_still_fails_the_parse 8893[gw2] [ 76%] PASSED tests/shared/test_httpx_utils.py::test_https_to_http_on_same_host_is_outside_origin 8894tests/shared/test_httpx_utils.py::test_client_configured_to_follow_redirects_is_still_scoped_to_origin 8895tests/shared/test_path_security.py::test_safe_join_rejects_null_byte 8896tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[unspecified-absent] 8897[gw4] [ 76%] PASSED tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[unspecified-absent] 8898tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[unspecified-empty] 8899[gw2] [ 76%] PASSED tests/shared/test_httpx_utils.py::test_client_configured_to_follow_redirects_is_still_scoped_to_origin 8900tests/shared/test_httpx_utils.py::test_redirect_past_the_client_max_redirects_budget_is_handed_back_unfollowed 8901[gw4] [ 76%] PASSED tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[unspecified-empty] 8902tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[specified-absent] 8903[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte 8904tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part 8905[gw4] [ 76%] PASSED tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[specified-absent] 8906tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[specified-empty] 8907[gw4] [ 76%] PASSED tests/shared/test_auth.py::test_client_with_no_registered_redirect_uris_cannot_resolve_a_redirect[specified-empty] 8908[gw1] [ 76%] PASSED tests/shared/test_streamable_http.py::test_json_response_missing_accept_header 8909[gw0] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_during_delivered_request_write_sends_courtesy_cancellation 8910[gw7] [ 76%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_null_byte_in_later_part 8911tests/shared/test_auth.py::test_request_metadata_restricts_application_type_to_the_values_the_sdk_sends 8912tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation 8913[gw2] [ 76%] PASSED tests/shared/test_httpx_utils.py::test_redirect_past_the_client_max_redirects_budget_is_handed_back_unfollowed 8914tests/shared/test_httpx_utils.py::test_redirect_location_with_userinfo_is_not_followed 8915[gw4] [ 76%] PASSED tests/shared/test_auth.py::test_request_metadata_restricts_application_type_to_the_values_the_sdk_sends 8916tests/shared/test_auth.py::test_request_metadata_requires_at_least_one_redirect_uri 8917tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header 8918[gw3] [ 76%] PASSED tests/server/mcpserver/test_extension.py::test_require_client_extension_passes_when_client_declared_it 8919tests/server/mcpserver/test_extension.py::test_require_client_extension_raises_minus_32021_when_client_did_not_declare_it 8920[gw2] [ 76%] PASSED tests/shared/test_httpx_utils.py::test_redirect_location_with_userinfo_is_not_followed 8921tests/shared/test_httpx_utils.py::test_userinfo_of_the_configured_url_kept_by_a_relative_location_is_followed 8922[gw4] [ 76%] PASSED tests/shared/test_auth.py::test_request_metadata_requires_at_least_one_redirect_uri 8923tests/shared/test_auth.py::test_invalid_non_empty_url_still_rejected 8924[gw6] [ 76%] PASSED tests/server/mcpserver/test_resolve.py::test_delete_non_empty_folder_handles_every_outcome[cancel-None-cancelled: folder not deleted] 8925[gw4] [ 76%] PASSED tests/shared/test_auth.py::test_invalid_non_empty_url_still_rejected 8926tests/server/mcpserver/test_resolve.py::test_input_required_first_round_returns_the_question 8927[gw2] [ 76%] PASSED tests/shared/test_httpx_utils.py::test_userinfo_of_the_configured_url_kept_by_a_relative_location_is_followed 8928tests/shared/test_httpx_utils.py::test_request_within_origin_returns_a_read_response 8929tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] 8930[gw7] [ 76%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dashes] 8931[gw2] [ 76%] PASSED tests/shared/test_httpx_utils.py::test_request_within_origin_returns_a_read_response 8932tests/shared/test_httpx_utils.py::test_sse_within_origin_sends_event_stream_headers_and_caller_headers 8933tests/shared/test_auth_utils.py::test_resource_url_from_server_url_removes_fragment 8934tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] 8935[gw0] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancelled_before_request_write_starts_sends_no_courtesy_cancellation 8936tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation 8937[gw7] [ 76%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_slashes] 8938[gw3] [ 76%] PASSED tests/server/mcpserver/test_extension.py::test_require_client_extension_raises_minus_32021_when_client_did_not_declare_it 8939[gw1] [ 76%] PASSED tests/shared/test_streamable_http.py::test_json_response_incorrect_accept_header 8940[gw4] [ 76%] PASSED tests/shared/test_auth_utils.py::test_resource_url_from_server_url_removes_fragment 8941tests/shared/test_auth_utils.py::test_resource_url_from_server_url_preserves_path 8942tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] 8943[gw7] [ 76%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[mixed_valid_invalid] 8944[gw4] [ 76%] PASSED tests/shared/test_auth_utils.py::test_resource_url_from_server_url_preserves_path 8945tests/shared/test_auth_utils.py::test_resource_url_from_server_url_preserves_query 8946[gw4] [ 76%] PASSED tests/shared/test_auth_utils.py::test_resource_url_from_server_url_preserves_query 8947tests/shared/test_auth_utils.py::test_resource_url_from_server_url_preserves_port 8948[gw4] [ 76%] PASSED tests/shared/test_auth_utils.py::test_resource_url_from_server_url_preserves_port 8949tests/shared/test_auth_utils.py::test_resource_url_from_server_url_lowercase_scheme_and_host 8950[gw2] [ 76%] PASSED tests/shared/test_httpx_utils.py::test_sse_within_origin_sends_event_stream_headers_and_caller_headers 8951tests/shared/test_httpx_utils.py::test_auth_flow_requests_are_not_redirected 8952tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] 8953[gw4] [ 76%] PASSED tests/shared/test_auth_utils.py::test_resource_url_from_server_url_lowercase_scheme_and_host 8954tests/shared/test_auth_utils.py::test_resource_url_from_server_url_handles_pydantic_urls 8955[gw4] [ 76%] PASSED tests/shared/test_auth_utils.py::test_resource_url_from_server_url_handles_pydantic_urls 8956tests/shared/test_auth_utils.py::test_check_resource_allowed_identical_urls 8957[gw6] [ 76%] PASSED tests/server/mcpserver/test_resolve.py::test_input_required_first_round_returns_the_question 8958[gw4] [ 76%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_identical_urls 8959tests/shared/test_auth_utils.py::test_check_resource_allowed_different_schemes 8960[gw4] [ 76%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_different_schemes 8961[gw2] [ 76%] PASSED tests/shared/test_httpx_utils.py::test_auth_flow_requests_are_not_redirected 8962tests/server/mcpserver/test_resolve.py::test_input_required_loop_handles_every_outcome[accept-content0-deleted /docs] 8963tests/shared/test_auth_utils.py::test_check_resource_allowed_different_domains 8964tests/server/mcpserver/test_func_metadata.py::test_complex_function_runtime_arg_validation_non_json 8965tests/shared/test_uri_template.py::test_parse_literal_only 8966[gw4] [ 76%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_different_domains 8967tests/shared/test_auth_utils.py::test_check_resource_allowed_different_ports 8968[gw4] [ 76%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_different_ports 8969tests/shared/test_auth_utils.py::test_check_resource_allowed_hierarchical_matching 8970[gw0] [ 76%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_with_resumption_hints_suppresses_the_courtesy_cancellation 8971tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation 8972[gw7] [ 76%] PASSED tests/shared/test_uri_template.py::test_parse_literal_only 8973tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] 8974[gw4] [ 76%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_hierarchical_matching 8975tests/shared/test_auth_utils.py::test_check_resource_allowed_path_boundary_matching 8976[gw7] [ 76%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/{name}-True] 8977tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] 8978[gw4] [ 76%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_path_boundary_matching 8979[gw5] [ 76%] PASSED tests/docs/test_translations.py::test_removed_english_section_is_reassembled_with_no_client_but_an_edited_one_needs_credentials_first 8980tests/docs/test_translations.py::test_a_failing_page_does_not_stop_the_run_and_the_exit_code_is_1 8981tests/shared/test_auth_utils.py::test_check_resource_allowed_trailing_slash_handling 8982tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] 8983[gw7] [ 76%] PASSED tests/shared/test_uri_template.py::test_is_template[file://docs/readme.txt-False] 8984[gw4] [ 76%] PASSED tests/shared/test_auth_utils.py::test_check_resource_allowed_trailing_slash_handling 8985tests/shared/test_uri_template.py::test_is_template[-False] 8986[gw7] [ 76%] PASSED tests/shared/test_uri_template.py::test_is_template[-False] 8987tests/shared/test_uri_template.py::test_is_template[{a}-True] 8988[gw7] [ 76%] PASSED tests/shared/test_uri_template.py::test_is_template[{a}-True] 8989tests/shared/test_uri_template.py::test_is_template[{-False] 8990[gw2] [ 76%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_underscores] 8991[gw1] [ 77%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[*/*] 8992[gw7] [ 77%] PASSED tests/shared/test_uri_template.py::test_is_template[{-False] 8993tests/shared/test_uri_template.py::test_is_template[}-False] 8994[gw7] [ 77%] PASSED tests/shared/test_uri_template.py::test_is_template[}-False] 8995tests/shared/test_uri_template.py::test_is_template[}{-False] 8996tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] 8997[gw2] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dashes] 8998tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] 8999[gw0] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_with_resumption_hints_suppresses_the_courtesy_cancellation 9000tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout 9001[gw7] [ 77%] PASSED tests/shared/test_uri_template.py::test_is_template[}{-False] 9002tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] 9003[gw7] [ 77%] PASSED tests/shared/test_uri_template.py::test_is_template[prefix{+path}/suffix-True] 9004tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] 9005[gw7] [ 77%] PASSED tests/shared/test_uri_template.py::test_is_template[{invalid syntax but still a template}-True] 9006tests/shared/test_uri_template.py::test_parse_simple_variable 9007[gw7] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_simple_variable 9008tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] 9009[gw7] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{+path}-+] 9010tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] 9011[gw4] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a},{+b}] 9012[gw2] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[with_dots] 9013tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] 9014[gw2] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[mixed_characters] 9015[gw3] [ 77%] PASSED tests/server/mcpserver/test_func_metadata.py::test_complex_function_runtime_arg_validation_non_json 9016tests/server/mcpserver/test_func_metadata.py::test_complex_function_runtime_arg_validation_with_json 9017tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] 9018[gw4] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{#a}/x/{+b}] 9019tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] 9020tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] 9021[gw7] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{#frag}-#] 9022tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] 9023[gw7] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{.ext}-.] 9024tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] 9025[gw4] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}.foo.{#b}] 9026tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] 9027tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] 9028[gw2] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[single_character] 9029tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] 9030[gw7] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{/seg}-/] 9031tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] 9032[gw7] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{;param}-;] 9033tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] 9034tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] 9035[gw4] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}] 9036[gw7] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{?q}-?] 9037tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] 9038[gw7] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_all_operators[{&next}-&] 9039tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] 9040[gw6] [ 77%] PASSED tests/server/mcpserver/test_resolve.py::test_input_required_loop_handles_every_outcome[accept-content0-deleted /docs] 9041tests/server/mcpserver/test_resolve.py::test_input_required_loop_handles_every_outcome[accept-content1-kept the folder] 9042tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression 9043[gw2] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[max_length_128] 9044tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name 9045[gw2] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_empty_name 9046tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length 9047[gw4] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{b}] 9048tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] 9049[gw2] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_name_exceeding_max_length 9050[gw7] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_variables_in_expression 9051tests/shared/test_uri_template.py::test_parse_multiple_expressions 9052tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] 9053[gw2] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_spaces] 9054tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] 9055[gw3] [ 77%] PASSED tests/server/mcpserver/test_func_metadata.py::test_complex_function_runtime_arg_validation_with_json 9056tests/server/mcpserver/test_func_metadata.py::test_call_fn_does_not_mutate_the_arguments_dict 9057[gw2] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_commas] 9058tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] 9059[gw7] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_multiple_expressions 9060tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] 9061[gw7] [ 77%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}-expected0] 9062tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] 9063[gw7] [ 77%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{?a,b}{&c}-expected1] 9064tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] 9065[gw7] [ 77%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}-expected2] 9066[gw0] [ 77%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_cancel_on_abandon_false_suppresses_the_courtesy_cancellation_on_timeout 9067tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set 9068[gw4] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{b}] 9069tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] 9070[gw4] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{;a}{b}] 9071tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] 9072[gw4] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{b}X{+p}] 9073tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] 9074[gw4] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}X{a}{b}] 9075tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] 9076[gw4] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[pre{a}{b}post] 9077tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] 9078[gw4] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}] 9079tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] 9080[gw4] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{b}] 9081tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] 9082[gw2] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_slashes] 9083tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] 9084[gw2] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_at_symbol] 9085tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] 9086[gw7] [ 77%] PASSED tests/shared/test_uri_template.py::test_query_variable_names[logs://{service}{&c}-expected3] 9087tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] 9088[gw9] [ 77%] PASSED tests/server/test_stdio.py::test_a_degraded_session_does_not_close_the_sys_stream_it_served 9089tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_until_stdin_closes 9090[gw2] [ 77%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[with_trailing_newline] 9091[gw4] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{#a}{b}] 9092tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] 9093[gw4] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a}{+b}] 9094tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] 9095[gw4] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a}{+b}] 9096[gw3] [ 77%] PASSED tests/server/mcpserver/test_func_metadata.py::test_call_fn_does_not_mutate_the_arguments_dict 9097tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] 9098[gw7] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}{b}Y{c}] 9099tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] 9100tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] 9101[gw4] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[x{name}{+path}y] 9102tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] 9103[gw4] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{+a}{b}] 9104tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] 9105tests/server/mcpserver/test_func_metadata.py::test_call_fn_with_arg_validation_still_works_and_warns 9106[gw4] [ 77%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+p}{n}] 9107[gw1] [ 78%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*] 9108[gw7] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[X{a}{+p}{b}Y{c}] 9109tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] 9110[gw7] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}{b}] 9111tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] 9112[gw4] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{x}Y{+p}{n}] 9113tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] 9114tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] 9115[gw2] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_invalid_characters[max_length_with_trailing_newline] 9116tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars 9117[gw2] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_multiple_invalid_chars 9118tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters 9119[gw2] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_rejects_unicode_characters 9120tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash 9121[gw2] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dash 9122tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash 9123[gw2] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dash 9124tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot 9125[gw0] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_write_timeout_propagates_raw_when_no_request_timeout_is_set 9126tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9127tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] 9128[gw7] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{/p*}] 9129[gw6] [ 78%] PASSED tests/server/mcpserver/test_resolve.py::test_input_required_loop_handles_every_outcome[accept-content1-kept the folder] 9130tests/server/mcpserver/test_resolve.py::test_input_required_loop_handles_every_outcome[decline-None-declined: folder not deleted] 9131[gw2] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_leading_dot 9132[gw4] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{?a}{+b}x] 9133tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] 9134[gw8] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_interrupt_mode_interrupts_handler_and_writes_no_response 9135tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_signal_mode_sets_event_and_drops_the_completed_handlers_result 9136tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot 9137tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] 9138tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] 9139[gw7] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/seg}{;k*}] 9140[gw2] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_warns_on_trailing_dot 9141[gw3] [ 78%] PASSED tests/server/mcpserver/test_func_metadata.py::test_call_fn_with_arg_validation_still_works_and_warns 9142tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings 9143[gw4] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}-{+p}{b}] 9144tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] 9145[gw4] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+p}-{b}] 9146tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] 9147[gw4] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{name}{+path}{.ext}] 9148[gw5] [ 78%] PASSED tests/docs/test_translations.py::test_a_failing_page_does_not_stop_the_run_and_the_exit_code_is_1 9149tests/docs/test_translations.py::test_rejected_credentials_stop_the_run_with_exit_2 9150tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] 9151[gw7] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[item://{id}{;opts*}] 9152[gw2] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_logs_warnings 9153tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings 9154[gw2] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_issue_tool_name_warning_no_logging_for_empty_warnings 9155tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] 9156[gw4] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{base}{+p}{;k}] 9157tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] 9158[gw4] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{a}{+b}{c}] 9159tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] 9160[gw4] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[prefix/{+path}{.ext}] 9161tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] 9162[gw4] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[tree://nodes{/path*}] 9163tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] 9164[gw7] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[api{;key}{+rest}] 9165tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] 9166[gw7] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{/b*}] 9167tests/server/mcpserver/test_func_metadata.py::test_str_vs_list_str 9168[gw3] [ 78%] PASSED tests/server/mcpserver/test_func_metadata.py::test_str_vs_list_str 9169tests/server/mcpserver/test_func_metadata.py::test_pre_parse_json_leaves_strings_the_json_parser_refuses_untouched 9170[gw0] [ 78%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_caller_cancel_courtesy_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9171tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9172tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] 9173[gw7] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{.b*}] 9174tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] 9175[gw7] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{.a*}{;b*}] 9176tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] 9177[gw7] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{/a*}{b}{.c*}] 9178tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] 9179[gw7] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_adjacent_variables[{+a}{/b*}] 9180tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] 9181[gw7] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://docs/{+path}] 9182tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] 9183tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name 9184[gw2] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_true_for_valid_name 9185tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name 9186[gw2] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_returns_false_for_invalid_name 9187tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name 9188[gw2] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_logs_warnings_for_invalid_name 9189[gw9] [ 78%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_until_stdin_closes 9190tests/server/test_stdio.py::test_mcpserver_run_stdio_runs_lifespan_cleanup_after_stdin_closes 9191tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name 9192tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] 9193[gw4] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api{;key}/{+rest}] 9194tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] 9195[gw4] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x}/{x}] 9196tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] 9197[gw4] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{x,x}] 9198tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] 9199[gw4] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{a}{b}{a}] 9200tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] 9201[gw4] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_duplicate_variable_names[{+x}/foo/{x}] 9202tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] 9203[gw4] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}{?b}] 9204tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] 9205[gw2] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_validate_and_warn_tool_name_no_warnings_for_clean_valid_name 9206tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] 9207[gw6] [ 78%] PASSED tests/server/mcpserver/test_resolve.py::test_input_required_loop_handles_every_outcome[decline-None-declined: folder not deleted] 9208tests/server/mcpserver/test_resolve.py::test_input_required_loop_handles_every_outcome[cancel-None-cancelled: folder not deleted] 9209[gw7] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}.txt] 9210tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] 9211[gw7] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[file://{+path}/edit] 9212tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] 9213[gw7] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{?v,page}] 9214tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] 9215[gw7] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[api/{+path}{&next}] 9216tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] 9217[gw2] [ 78%] PASSED tests/shared/test_tool_name_validation.py::test_edge_cases[only_dots] 9218[gw4] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[/x{?a}/y{?b}] 9219tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] 9220[gw4] [ 78%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_query_expressions[{?a}{&b}{?c}] 9221tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings 9222[gw4] [ 78%] PASSED tests/shared/test_uri_template.py::test_query_tail_roundtrip_correct_spellings 9223tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error 9224[gw4] [ 79%] PASSED tests/shared/test_uri_template.py::test_invalid_uri_template_is_value_error 9225tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] 9226[gw1] [ 79%] PASSED tests/shared/test_streamable_http.py::test_json_response_wildcard_accept_header[application/*;q=0.9] 9227[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[page{#section}] 9228tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] 9229[gw4] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{name}}] 9230tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] 9231tests/shared/test_streamable_http.py::test_get_sse_stream 9232tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] 9233[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{a}{#b}] 9234tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] 9235[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}/sep/{b}] 9236tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] 9237[gw3] [ 79%] PASSED tests/server/mcpserver/test_func_metadata.py::test_pre_parse_json_leaves_strings_the_json_parser_refuses_untouched 9238tests/server/mcpserver/test_func_metadata.py::test_skip_names 9239[gw0] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_timeout_courtesy_cancel_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9240tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9241[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a},{b}] 9242tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] 9243[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{/b}] 9244tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] 9245[gw2] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[{a}}{b}] 9246[gw4] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a{b}c}] 9247tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] 9248[gw4] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{{]{}}{}] 9249tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] 9250[gw4] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_nested_braces[{a,{b}] 9251tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] 9252[gw4] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{-0] 9253[gw3] [ 79%] PASSED tests/server/mcpserver/test_func_metadata.py::test_skip_names 9254tests/server/mcpserver/test_func_metadata.py::test_structured_output_dict_str_types 9255tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions 9256[gw2] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_stray_close_brace_between_expressions 9257tests/shared/test_uri_template.py::test_parse_rejects_oversized_template 9258[gw2] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_oversized_template 9259tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables 9260tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] 9261[gw4] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{{-0] 9262tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] 9263[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{.b}] 9264tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] 9265[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+a}{;b}] 9266tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] 9267[gw2] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_too_many_variables 9268tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions 9269[gw2] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_counts_variables_not_expressions 9270[gw4] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[file://{name-7] 9271tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] 9272[gw4] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[{a}{-3] 9273tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] 9274[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_allows_single_multi_segment_variable[{+path}{.ext}] 9275tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] 9276[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[file{.ext}-variables15-file.txt] 9277tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] 9278[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{/seg}-variables16-/docs] 9279tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] 9280tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger 9281[gw2] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_custom_limits_allow_larger 9282tests/shared/test_uri_template.py::test_equality_based_on_template_string 9283[gw2] [ 79%] PASSED tests/shared/test_uri_template.py::test_equality_based_on_template_string 9284tests/shared/test_uri_template.py::test_frozen 9285[gw2] [ 79%] PASSED tests/shared/test_uri_template.py::test_frozen 9286[gw4] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_brace[}{-1] 9287tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] 9288[gw4] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}}] 9289tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] 9290[gw4] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[}] 9291tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] 9292[gw4] [ 79%] PASSED tests/shared/test_uri_template.py::test_parse_treats_stray_close_brace_as_literal[a}b] 9293tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] 9294[gw9] [ 79%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_runs_lifespan_cleanup_after_stdin_closes 9295tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_a_modern_connection 9296tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] 9297[gw2] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables0-value] 9298tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] 9299[gw2] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables1-hello%20world] 9300tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] 9301[gw2] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables2-a%2Fb] 9302[gw3] [ 79%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_dict_str_types 9303tests/server/mcpserver/test_func_metadata.py::test_lambda_function 9304[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables17-;id=42] 9305tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] 9306[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{;id}-variables18-;id] 9307tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] 9308[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables19-?q=search] 9309tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] 9310[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{?q}-variables20-?q=] 9311tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] 9312[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[/search{?q,lang}-variables21-/search?q=mcp&lang=en] 9313tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] 9314[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[?a=1{&b}-variables22-?a=1&b=2] 9315tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] 9316[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{x,y}-variables23-1,2] 9317tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] 9318[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{/list}-variables24-/a,b,c] 9319tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] 9320[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{?list}-variables25-?list=a,b] 9321tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] 9322[gw0] [ 79%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_error_response_write_is_bounded_when_the_transport_is_wedged[trio-mockclock] 9323tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed 9324[gw6] [ 79%] PASSED tests/server/mcpserver/test_resolve.py::test_input_required_loop_handles_every_outcome[cancel-None-cancelled: folder not deleted] 9325tests/server/mcpserver/test_resolve.py::test_input_required_empty_folder_completes_without_eliciting 9326tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] 9327[gw2] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{name}-variables3-file://docs/readme.txt] 9328tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] 9329[gw2] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables4-a/b/c] 9330[gw5] [ 79%] PASSED tests/docs/test_translations.py::test_rejected_credentials_stop_the_run_with_exit_2 9331tests/docs/test_translations.py::test_jobs_keeps_that_many_pages_in_flight_and_publishes_each_before_starting_another 9332[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables26-/a/b/c] 9333tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] 9334[gw7] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{.labels*}-variables27-.x.y] 9335tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] 9336tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] 9337[gw2] [ 79%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables5-a?b#c] 9338tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] 9339[gw3] [ 79%] PASSED tests/server/mcpserver/test_func_metadata.py::test_lambda_function 9340tests/server/mcpserver/test_func_metadata.py::test_complex_function_json_schema 9341[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{/path*}-variables38-] 9342tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] 9343[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[file://static-variables39-file://static] 9344tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple 9345[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand_encodes_special_chars_in_simple 9346tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved 9347[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand_preserves_special_chars_in_reserved 9348tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] 9349[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[42] 9350tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] 9351[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[None] 9352tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] 9353[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[3.14] 9354tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] 9355[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value3] 9356tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] 9357[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[value4] 9358tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] 9359[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand_rejects_invalid_value_types[bytes] 9360tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] 9361[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[{var}-hello-expected0] 9362tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] 9363[gw0] [ 80%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_answers_in_flight_request_with_connection_closed 9364tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer 9365[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{name}-file://docs/readme.txt-expected1] 9366tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] 9367[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[{a}/{b}-foo/bar-expected2] 9368[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables28-;keys=a;keys=b] 9369tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] 9370[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{;keys*}-variables29-;keys=a;keys;keys=b] 9371tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] 9372[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables30-;name] 9373tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] 9374[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables31-;name=,] 9375tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] 9376[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{?name}-variables32-?name=] 9377tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] 9378[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{&name}-variables33-&name=] 9379tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] 9380[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{;name}-variables34-;name] 9381tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] 9382[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{?q,page}-variables35-?q=x] 9383tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] 9384[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{a,b}-variables36-x] 9385[gw2] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables6-path%2Fto] 9386tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] 9387[gw2] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables7-50%25] 9388tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] 9389[gw2] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables8-50%252] 9390tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] 9391[gw2] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{+var}-variables9-a%2Fb%20c] 9392tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] 9393[gw2] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables10-#a%2Fb] 9394tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] 9395[gw2] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{var}-variables11-path%252Fto] 9396tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] 9397[gw2] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[file://docs/{+path}-variables12-file://docs/src/main.py] 9398tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] 9399[gw2] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables13-#section] 9400tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] 9401[gw1] [ 80%] PASSED tests/shared/test_streamable_http.py::test_get_sse_stream 9402tests/shared/test_streamable_http.py::test_get_validation 9403[gw2] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{#var}-variables14-#a/b] 9404tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] 9405[gw2] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[file{.ext}-file.txt-expected12] 9406tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] 9407[gw3] [ 80%] PASSED tests/server/mcpserver/test_func_metadata.py::test_complex_function_json_schema 9408tests/server/mcpserver/test_func_metadata.py::test_str_vs_int 9409[gw3] [ 80%] PASSED tests/server/mcpserver/test_func_metadata.py::test_str_vs_int 9410tests/server/mcpserver/test_func_metadata.py::test_str_annotation_preserves_json_string 9411[gw3] [ 80%] PASSED tests/server/mcpserver/test_func_metadata.py::test_str_annotation_preserves_json_string 9412tests/server/mcpserver/test_func_metadata.py::test_str_annotation_runtime_validation 9413[gw3] [ 80%] PASSED tests/server/mcpserver/test_func_metadata.py::test_str_annotation_runtime_validation 9414tests/server/mcpserver/test_func_metadata.py::test_structured_output_requires_return_annotation 9415[gw3] [ 80%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_requires_return_annotation 9416tests/server/mcpserver/test_func_metadata.py::test_structured_output_basemodel 9417[gw9] [ 80%] PASSED tests/server/test_stdio.py::test_mcpserver_run_stdio_serves_a_modern_connection 9418tests/server/test_subscriptions.py::test_in_memory_bus_fans_out_until_unsubscribed 9419[gw6] [ 80%] PASSED tests/server/mcpserver/test_resolve.py::test_input_required_empty_folder_completes_without_eliciting 9420tests/server/mcpserver/test_resolve.py::test_input_required_asks_each_question_once_while_bodies_rerun 9421[gw6] [ 80%] PASSED tests/server/mcpserver/test_resolve.py::test_input_required_asks_each_question_once_while_bodies_rerun 9422tests/server/mcpserver/test_resolve.py::test_input_required_batches_independent_elicits_in_one_round 9423[gw9] [ 80%] PASSED tests/server/test_subscriptions.py::test_in_memory_bus_fans_out_until_unsubscribed 9424tests/server/test_subscriptions.py::test_in_memory_bus_keeps_equal_callables_distinct 9425[gw2] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[api{/version}-api/v1-expected13] 9426tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] 9427[gw2] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id=42-expected14] 9428tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] 9429tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] 9430[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_expand[{?page}-variables37-] 9431tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] 9432[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;ident] 9433tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] 9434[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;admin=true] 9435tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] 9436[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}-item;keys=a;admin=true] 9437tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] 9438[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_match_no_match[api/{name}{?q}-wrong/path?q=x] 9439tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] 9440[gw7] [ 80%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;keys*}{?q}-item;wrong=x?q=1] 9441tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items 9442[gw9] [ 80%] PASSED tests/server/test_subscriptions.py::test_in_memory_bus_keeps_equal_callables_distinct 9443tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] 9444[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[file://docs/{+path}-file://docs/src/main.py-expected3] 9445tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] 9446[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[{+var}-a/b/c-expected4] 9447tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] 9448[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}-page#intro-expected5] 9449tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] 9450[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{/name}-a/b/c/readme-expected6] 9451tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] 9452[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[{+path}{.ext}-src/main.py-expected7] 9453tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] 9454[gw4] [ 80%] PASSED tests/shared/test_uri_template.py::test_match[prefix/{+path}{.ext}-prefix/a/b.txt-expected8] 9455tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] 9456[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[{#section}{/page}-#intro/1-expected9] 9457tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] 9458[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[{owner}@{+path}-alice@src/main-expected10] 9459[gw3] [ 81%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_basemodel 9460tests/server/mcpserver/test_func_metadata.py::test_structured_output_primitives 9461[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_explode_preserves_empty_list_items 9462tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal 9463[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_adjacent_vars_disambiguated_by_literal 9464tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] 9465[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[prefix-{id}-variables0] 9466tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] 9467[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[u{s}-variables1] 9468tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] 9469[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[_{x}-variables2] 9470[gw3] [ 81%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_primitives 9471tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] 9472[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[{+path}@{name}-src@main@v1-expected11] 9473tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] 9474[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-X/a?b] 9475tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] 9476[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[item{;id}-item;id-expected15] 9477tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] 9478[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys=b-expected16] 9479tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] 9480[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item;keys=a;keys;keys=b-expected17] 9481tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] 9482[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[item{;keys*}-item-expected18] 9483tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] 9484[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello-expected19] 9485tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] 9486[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=-expected20] 9487tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] 9488[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search-expected21] 9489tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] 9490[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp&lang=en-expected22] 9491[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api{;key}suffix/{+p}-api;keyZ/x] 9492tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] 9493[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}/{id}-api://foo] 9494tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] 9495[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[~{v}~-variables3] 9496tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] 9497[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[L{a}L{b}-variables4] 9498tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] 9499tests/server/mcpserver/test_func_metadata.py::test_structured_output_generic_types 9500[gw6] [ 81%] PASSED tests/server/mcpserver/test_resolve.py::test_input_required_batches_independent_elicits_in_one_round 9501tests/server/mcpserver/test_resolve.py::test_auto_driver_answers_independent_questions_in_a_single_round 9502tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] 9503[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?lang=en&q=mcp-expected23] 9504tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] 9505tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] 9506[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_leading_literal_appears_in_value[api/{name}-variables5] 9507tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 9508[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[docs/{+path}/v/{name}-docs/v/x] 9509[gw1] [ 81%] PASSED tests/shared/test_streamable_http.py::test_get_validation 9510tests/server/test_subscriptions.py::test_ack_first_honored_subset_and_stamped_graceful_result 9511[gw9] [ 81%] PASSED tests/server/test_subscriptions.py::test_ack_first_honored_subset_and_stamped_graceful_result 9512tests/server/test_subscriptions.py::test_only_requested_event_kinds_are_delivered 9513[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}-{+b}x---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 9514tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] 9515[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_no_backtracking_on_pathological_input[{a}L{b}L{c}L{d}M-LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL] 9516tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] 9517[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}-http://x] 9518tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] 9519[gw9] [ 81%] PASSED tests/server/test_subscriptions.py::test_only_requested_event_kinds_are_delivered 9520tests/server/test_subscriptions.py::test_empty_filter_honors_nothing_and_delivers_nothing 9521tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init 9522tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] 9523[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=base/a/b-expected0] 9524[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search?q=mcp-expected24] 9525tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] 9526[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[search{?q,lang}-search-expected25] 9527tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] 9528[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=mcp&utm=x&ref=y-expected26] 9529tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] 9530[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=hello%20world-expected27] 9531tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] 9532[gw3] [ 81%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_generic_types 9533tests/server/mcpserver/test_func_metadata.py::test_structured_output_dataclass 9534[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[file://{+path}.txt-file://x] 9535tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] 9536[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[{a}@{+path}-no-at-sign-here] 9537tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] 9538[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[foo{+a}oob-fooob] 9539tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] 9540[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[api://{+path}-api://foo?bar] 9541[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=C++-expected28] 9542tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] 9543[gw3] [ 81%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_dataclass 9544tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] 9545[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_prefix_scan_edge_cases[api{;key}=base/{+path}-api;key=v=base/x-expected1] 9546tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] 9547[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[item{;id}-item;id=a=b-expected0] 9548tests/server/mcpserver/test_func_metadata.py::test_structured_output_typeddict 9549tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] 9550[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=1.0+build.5-expected29] 9551[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_suffix_ifemp_equals_in_value[{;a}{;b}-;a=x=y;b=z-expected1] 9552[gw6] [ 81%] PASSED tests/server/mcpserver/test_resolve.py::test_auto_driver_answers_independent_questions_in_a_single_round 9553tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] 9554tests/server/mcpserver/test_resolve.py::test_uses_input_required_version_gate 9555tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal 9556[gw4] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_prefix_ifemp_empty_before_non_stop_literal 9557[gw6] [ 81%] PASSED tests/server/mcpserver/test_resolve.py::test_uses_input_required_version_gate 9558[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[logs://{service}{?level}-logs://api?level=error#section1-expected30] 9559tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[None] 9560tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] 9561tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template 9562[gw9] [ 81%] PASSED tests/server/test_subscriptions.py::test_empty_filter_honors_nothing_and_delivers_nothing 9563[gw3] [ 81%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_typeddict 9564tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] 9565[gw6] [ 81%] PASSED tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[None] 9566[gw2] [ 81%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search#frag-expected31] 9567[gw7] [ 81%] PASSED tests/shared/test_uri_template.py::test_match_greedy_rejection_paths[X{/path*}-Xnoslash] 9568tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[] 9569tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash 9570[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_reserved_expansion_handles_slash 9571tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] 9572[gw6] [ 82%] PASSED tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[] 9573tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once 9574tests/server/mcpserver/test_func_metadata.py::test_structured_output_typeddict_qualifiers_and_metadata 9575[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_double_encoding_decoded_once 9576tests/shared/test_uri_template.py::test_match_rejects_oversized_uri 9577tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[not json] 9578[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_rejects_oversized_uri 9579[gw2] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[api{?v}{&page,limit}-api?limit=10&v=2-expected32] 9580tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit 9581[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_large_uri_against_greedy_template 9582[gw6] [ 82%] PASSED tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[not json] 9583[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_accepts_uri_within_custom_limit 9584tests/shared/test_uri_template.py::test_match_default_uri_length_limit 9585tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] 9586tests/shared/test_uri_template.py::test_match_decodes_percent_encoding 9587tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[{"v": 99, "outcomes": {}}] 9588[gw2] [ 82%] PASSED tests/shared/test_uri_template.py::test_match[api{&page}-api&page=2-expected33] 9589[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_decodes_percent_encoding 9590[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_default_uri_length_limit 9591[gw6] [ 82%] PASSED tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[{"v": 99, "outcomes": {}}] 9592tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment 9593[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_explode_encoded_separator_in_segment 9594tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] 9595tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] 9596tests/shared/test_uri_template.py::test_match_escapes_template_literals 9597tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[{"v": 1}] 9598[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables0] 9599tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] 9600[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{name}-variables1] 9601[gw6] [ 82%] PASSED tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[{"v": 1}] 9602[gw2] [ 82%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables14] 9603[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_escapes_template_literals 9604tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] 9605[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file://docs/{+path}-variables2] 9606tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] 9607tests/server/test_subscriptions.py::test_publish_after_close_is_dropped 9608tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] 9609tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[{"v": 1, "outcomes": []}] 9610tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] 9611[gw3] [ 82%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_typeddict_qualifiers_and_metadata 9612[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[search{?q,lang}-variables3] 9613[gw6] [ 82%] PASSED tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[{"v": 1, "outcomes": []}] 9614tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] 9615[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables4] 9616[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file://docs/{name}-file://docs/a%2Fb-expected0] 9617tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] 9618[gw9] [ 82%] PASSED tests/server/test_subscriptions.py::test_publish_after_close_is_dropped 9619tests/server/test_subscriptions.py::test_event_published_during_ack_send_is_delivered_after_the_ack 9620tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[[1, 2, 3]] 9621[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[/files{/path*}-variables5] 9622[gw2] [ 82%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables15] 9623tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] 9624tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] 9625[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{var}-variables6] 9626tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] 9627[gw9] [ 82%] PASSED tests/server/test_subscriptions.py::test_event_published_during_ack_send_is_delivered_after_the_ack 9628tests/server/mcpserver/test_func_metadata.py::test_func_metadata_built_by_hand_keeps_a_given_output_schema 9629tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] 9630[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%3Fb-expected1] 9631[gw6] [ 82%] PASSED tests/server/mcpserver/test_resolve.py::test_decode_state_tolerates_malformed_request_state[[1, 2, 3]] 9632tests/server/test_subscriptions.py::test_listen_requires_a_request_id 9633[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables7] 9634tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] 9635[gw9] [ 82%] PASSED tests/server/test_subscriptions.py::test_listen_requires_a_request_id 9636tests/server/mcpserver/test_resolve.py::test_state_round_trips_accept_decline_cancel 9637tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] 9638[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;id}-variables8] 9639tests/server/test_subscriptions.py::test_close_without_open_streams_is_a_no_op 9640tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] 9641[gw2] [ 82%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[{/path*}-variables16] 9642tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] 9643[gw9] [ 82%] PASSED tests/server/test_subscriptions.py::test_close_without_open_streams_is_a_no_op 9644tests/server/test_subscriptions.py::test_raising_listener_is_isolated_from_others 9645[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[page{#section}-variables9] 9646tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] 9647[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%23b-expected2] 9648[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[file{.ext}-variables10] 9649[gw6] [ 82%] PASSED tests/server/mcpserver/test_resolve.py::test_state_round_trips_accept_decline_cancel 9650tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] 9651tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] 9652[gw2] [ 82%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[host{.labels*}-variables17] 9653[gw9] [ 82%] PASSED tests/server/test_subscriptions.py::test_raising_listener_is_isolated_from_others 9654[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{/v}-variables11] 9655tests/server/mcpserver/test_resolve.py::test_check_elicit_return_allows_one_arm_and_rejects_two 9656tests/server/test_subscriptions.py::test_raising_unsubscribe_does_not_skip_stream_cleanup 9657tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] 9658[gw3] [ 82%] PASSED tests/server/mcpserver/test_func_metadata.py::test_func_metadata_built_by_hand_keeps_a_given_output_schema 9659tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] 9660[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{var}-a%26b-expected3] 9661[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[x{name}y-variables12] 9662[gw6] [ 82%] PASSED tests/server/mcpserver/test_resolve.py::test_check_elicit_return_allows_one_arm_and_rejects_two 9663tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] 9664tests/server/mcpserver/test_func_metadata.py::test_func_metadata_output_fields_are_read_live 9665tests/server/mcpserver/test_resolve.py::test_non_elicitation_response_raises 9666[gw9] [ 82%] PASSED tests/server/test_subscriptions.py::test_raising_unsubscribe_does_not_skip_stream_cleanup 9667tests/server/test_subscriptions.py::test_subscription_limit_rejects_further_streams_pre_ack 9668[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[file{.ext}-file.a%2Eb-expected4] 9669[gw2] [ 82%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables18] 9670tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] 9671[gw9] [ 82%] PASSED tests/server/test_subscriptions.py::test_subscription_limit_rejects_further_streams_pre_ack 9672tests/server/test_subscriptions.py::test_backlog_overflow_ends_the_stream_and_frees_its_slot 9673[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[api{/v}-api/a%2Fb-expected5] 9674[gw3] [ 82%] PASSED tests/server/mcpserver/test_func_metadata.py::test_func_metadata_output_fields_are_read_live 9675tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] 9676[gw9] [ 82%] PASSED tests/server/test_subscriptions.py::test_backlog_overflow_ends_the_stream_and_frees_its_slot 9677tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] 9678tests/server/test_subscriptions.py::test_same_task_publish_burst_does_not_overflow_a_healthy_stream 9679[gw4] [ 82%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[search{?q}-search?q=a%26b-expected6] 9680[gw7] [ 82%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[item{;keys*}-variables13] 9681tests/server/mcpserver/test_func_metadata.py::test_structured_output_typeddict_with_unresolvable_annotation_is_unstructured 9682[gw6] [ 82%] PASSED tests/server/mcpserver/test_resolve.py::test_non_elicitation_response_raises 9683tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] 9684tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] 9685tests/server/mcpserver/test_resolve.py::test_direct_call_tool_with_non_eliciting_resolver 9686[gw1] [ 82%] PASSED tests/shared/test_streamable_http.py::test_client_includes_protocol_version_header_after_init 9687tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] 9688[gw4] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_encoded_delimiters_roundtrip[{;filter}-;filter=a%3Bb-expected7] 9689[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables19] 9690tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header 9691[gw5] [ 83%] PASSED tests/docs/test_translations.py::test_jobs_keeps_that_many_pages_in_flight_and_publishes_each_before_starting_another 9692[gw9] [ 83%] PASSED tests/server/test_subscriptions.py::test_same_task_publish_burst_does_not_overflow_a_healthy_stream 9693tests/docs/test_translations.py::test_rejected_credentials_keep_a_page_that_lands_from_the_same_flight 9694[gw6] [ 83%] PASSED tests/server/mcpserver/test_resolve.py::test_direct_call_tool_with_non_eliciting_resolver 9695[gw3] [ 83%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_typeddict_with_unresolvable_annotation_is_unstructured 9696tests/server/mcpserver/test_resolve.py::test_two_instances_of_one_method_do_not_collide 9697tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] 9698tests/server/mcpserver/test_func_metadata.py::test_structured_output_ordinary_class 9699tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[missing-host] 9700tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] 9701[gw9] [ 83%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[missing-host] 9702tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-no-match] 9703[gw9] [ 83%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-no-match] 9704tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-wildcard-base-mismatch] 9705[gw9] [ 83%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-wildcard-base-mismatch] 9706tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-exact-no-origin] 9707[gw3] [ 83%] PASSED tests/server/mcpserver/test_func_metadata.py::test_structured_output_ordinary_class 9708tests/server/mcpserver/test_func_metadata.py::test_unstructured_output_unannotated_class 9709[gw6] [ 83%] PASSED tests/server/mcpserver/test_resolve.py::test_two_instances_of_one_method_do_not_collide 9710tests/server/mcpserver/test_resolve.py::test_non_serializable_sibling_resolver_does_not_break_rounds 9711[gw9] [ 83%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-exact-no-origin] 9712tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-wildcard-match] 9713[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[logs://{service}{?since,level}-variables20] 9714tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] 9715[gw3] [ 83%] PASSED tests/server/mcpserver/test_func_metadata.py::test_unstructured_output_unannotated_class 9716[gw9] [ 83%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[host-wildcard-match] 9717tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-no-match] 9718tests/server/mcpserver/test_func_metadata.py::test_content_block_return_annotation_yields_no_output_schema[_returns_block] 9719[gw9] [ 83%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-no-match] 9720tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-wildcard-base-mismatch] 9721[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_roundtrip_expand_then_match[api{;key}=base/{+path}-variables21] 9722[gw6] [ 83%] PASSED tests/server/mcpserver/test_resolve.py::test_non_serializable_sibling_resolver_does_not_break_rounds 9723tests/server/mcpserver/test_resolve.py::test_bare_elicit_dependency_restored_as_model 9724[gw9] [ 83%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-wildcard-base-mismatch] 9725tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty 9726[gw3] [ 83%] PASSED tests/server/mcpserver/test_func_metadata.py::test_content_block_return_annotation_yields_no_output_schema[_returns_block] 9727tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-exact] 9728[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_simple_var_accepts_empty 9729tests/server/mcpserver/test_func_metadata.py::test_content_block_return_annotation_yields_no_output_schema[_returns_blocks] 9730tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template 9731[gw9] [ 83%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-exact] 9732[gw1] [ 83%] PASSED tests/shared/test_streamable_http.py::test_server_validates_protocol_version_header 9733tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-wildcard-match] 9734[gw9] [ 83%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_host_then_origin[origin-wildcard-match] 9735tests/server/test_transport_security.py::test_validate_request_skips_host_and_origin_when_protection_is_disabled 9736[gw3] [ 83%] PASSED tests/server/mcpserver/test_func_metadata.py::test_content_block_return_annotation_yields_no_output_schema[_returns_blocks] 9737[gw9] [ 83%] PASSED tests/server/test_transport_security.py::test_validate_request_skips_host_and_origin_when_protection_is_disabled 9738tests/server/test_transport_security.py::test_validate_request_defaults_to_protection_disabled 9739[gw9] [ 83%] PASSED tests/server/test_transport_security.py::test_validate_request_defaults_to_protection_disabled 9740tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[json] 9741[gw9] [ 83%] PASSED tests/server/test_transport_security.py::test_validate_request_checks_content_type_on_post[json] 9742[gw7] [ 83%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:91-95] 9743tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version 9744tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] 9745tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] 9746tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] 9747[gw6] [ 83%] PASSED tests/server/mcpserver/test_resolve.py::test_bare_elicit_dependency_restored_as_model 9748tests/server/mcpserver/test_resolve.py::test_accept_with_no_content_is_an_error_not_a_cancel[legacy] 9749[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[api?x{?page}-api?x?page=2-expected34] 9750[gw4] [ 83%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:40-42] 9751tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] 9752tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] 9753[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[page{#section}{?q}-page#intro?q=x-expected35] 9754tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] 9755[gw6] [ 83%] PASSED tests/server/mcpserver/test_resolve.py::test_accept_with_no_content_is_an_error_not_a_cancel[legacy] 9756tests/server/mcpserver/test_resolve.py::test_accept_with_no_content_is_an_error_not_a_cancel[auto] 9757[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[page#lit{?q}-page#lit?q=x-expected36] 9758[gw8] [ 83%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_signal_mode_sets_event_and_drops_the_completed_handlers_result 9759tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] 9760tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[unmapped-exception] 9761[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?&q=hello&-expected37] 9762tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] 9763[gw6] [ 83%] PASSED tests/server/mcpserver/test_resolve.py::test_accept_with_no_content_is_an_error_not_a_cancel[auto] 9764tests/server/mcpserver/test_resolve.py::test_independent_nested_deps_batch_into_one_round 9765[gw1] [ 83%] PASSED tests/shared/test_streamable_http.py::test_server_backwards_compatibility_no_protocol_version 9766[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[search{?q}-search?q=first&q=second-expected38] 9767tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] 9768tests/shared/test_streamable_http.py::test_client_crash_handled 9769[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil&token=real-expected39] 9770tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] 9771[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[api://x{?token}-api://x?%74oken=evil-expected40] 9772[gw6] [ 83%] PASSED tests/server/mcpserver/test_resolve.py::test_independent_nested_deps_batch_into_one_round 9773[gw2] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_inverts_expand_for_every_parseable_template 9774tests/server/mcpserver/test_resolve.py::test_deep_chain_keeps_early_answers_across_rounds 9775tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] 9776[gw9] [ 83%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:32-35] 9777tests/shared/test_uri_template.py::test_match_never_raises 9778[gw5] [ 83%] PASSED tests/docs/test_translations.py::test_rejected_credentials_keep_a_page_that_lands_from_the_same_flight 9779tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] 9780[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[?a=1{&b}-?a=1&b=2-expected41] 9781[gw7] [ 83%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:107-112] 9782tests/docs/test_translations.py::test_rejected_credentials_with_pages_in_flight_start_no_further_page 9783tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] 9784[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files/a/b/c-expected42] 9785tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] 9786tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:130-132] 9787[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}-/files-expected43] 9788tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] 9789[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[/files{/path*}/edit-/files/a/b/edit-expected44] 9790tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] 9791[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[host{.labels*}-host.example.com-expected45] 9792tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] 9793[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match[///{a}////{b}////-///x////y////-expected46] 9794tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] 9795[gw6] [ 83%] PASSED tests/server/mcpserver/test_resolve.py::test_deep_chain_keeps_early_answers_across_rounds 9796[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file://docs/{name}-file://other/readme.txt] 9797[gw4] [ 83%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:56-86] 9798tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] 9799tests/server/mcpserver/test_resolve.py::test_factory_closures_get_distinct_wire_keys 9800[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_no_match[{a}/{b}-foo] 9801tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] 9802[gw3] [ 83%] PASSED tests/shared/test_uri_template.py::test_match_no_match[file{.ext}-file] 9803tests/shared/test_uri_template.py::test_match_no_match[static-different] 9804tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] 9805[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[static-different] 9806tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] 9807[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}-/users/123/extra] 9808tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] 9809[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[/users/{id}/posts/{pid}-/users/1/posts/2/extra] 9810tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] 9811[gw6] [ 84%] PASSED tests/server/mcpserver/test_resolve.py::test_factory_closures_get_distinct_wire_keys 9812tests/server/mcpserver/test_resolve.py::test_eliciting_resolver_without_elicit_arm_restores_a_typed_model 9813[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[///{a}////{b}////-//x////y////] 9814tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] 9815[gw3] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_no_match[item{;id}-item;identity=john] 9816tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] 9817[gw9] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:53-55] 9818tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] 9819[gw7] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:130-132] 9820[gw6] [ 84%] PASSED tests/server/mcpserver/test_resolve.py::test_eliciting_resolver_without_elicit_arm_restores_a_typed_model 9821tests/server/mcpserver/test_resolve.py::test_wire_key_is_worker_stable_for_methods_and_callable_objects 9822tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:158-160] 9823[gw6] [ 84%] PASSED tests/server/mcpserver/test_resolve.py::test_wire_key_is_worker_stable_for_methods_and_callable_objects 9824[gw5] [ 84%] PASSED tests/docs/test_translations.py::test_rejected_credentials_with_pages_in_flight_start_no_further_page 9825tests/server/mcpserver/test_resolve.py::test_declined_outcome_persists_in_request_state_and_is_not_reasked 9826tests/docs/test_translations.py::test_translate_without_lang_works_through_every_language_with_that_languages_own_prompt 9827[gw4] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:96-98] 9828tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] 9829[gw0] [ 84%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_shutdown_cancel_during_delivered_result_write_writes_no_second_answer 9830tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry 9831[gw6] [ 84%] PASSED tests/server/mcpserver/test_resolve.py::test_declined_outcome_persists_in_request_state_and_is_not_reasked 9832[gw3] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:96-98] 9833tests/server/mcpserver/test_resolve.py::test_unknown_response_keys_and_ghost_state_entries_are_ignored 9834tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] 9835[gw9] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:74-76] 9836tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] 9837[gw0] [ 84%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_failure_propagates_and_leaves_no_pending_entry 9838[gw7] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:158-160] 9839tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed 9840tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:164-167] 9841[gw0] [ 84%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_request_write_on_torn_down_transport_raises_connection_closed 9842[gw6] [ 84%] PASSED tests/server/mcpserver/test_resolve.py::test_unknown_response_keys_and_ghost_state_entries_are_ignored 9843tests/shared/test_jsonrpc_dispatcher.py::test_notify_after_connection_close_is_dropped_with_debug_log 9844tests/server/mcpserver/test_resolve.py::test_forged_state_entry_failing_the_schema_is_reasked_not_an_error[non-dict-data] 9845[gw0] [ 84%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_after_connection_close_is_dropped_with_debug_log 9846tests/shared/test_jsonrpc_dispatcher.py::test_notify_on_torn_down_transport_is_dropped_with_debug_log 9847[gw0] [ 84%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notify_on_torn_down_transport_is_dropped_with_debug_log 9848tests/shared/test_jsonrpc_dispatcher.py::test_notification_handler_exception_is_contained 9849[gw9] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:99-101] 9850[gw4] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:169-171] 9851[gw6] [ 84%] PASSED tests/server/mcpserver/test_resolve.py::test_forged_state_entry_failing_the_schema_is_reasked_not_an_error[non-dict-data] 9852tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] 9853tests/server/mcpserver/test_resolve.py::test_forged_state_entry_failing_the_schema_is_reasked_not_an_error[dict-failing-schema] 9854[gw7] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:164-167] 9855tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] 9856tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:181-183] 9857[gw0] [ 84%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_notification_handler_exception_is_contained 9858tests/shared/test_jsonrpc_dispatcher.py::test_spawned_notification_handlers_run_concurrently 9859[gw3] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:106-108] 9860[gw0] [ 84%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_spawned_notification_handlers_run_concurrently 9861tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_request_metadata 9862[gw6] [ 84%] PASSED tests/server/mcpserver/test_resolve.py::test_forged_state_entry_failing_the_schema_is_reasked_not_an_error[dict-failing-schema] 9863tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] 9864tests/server/mcpserver/test_resolve.py::test_schema_mismatched_fresh_answer_fails_the_call_without_pydantic_leakage[legacy] 9865[gw0] [ 84%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_request_metadata 9866tests/shared/test_jsonrpc_dispatcher.py::test_transport_stamped_can_send_request_makes_the_request_channel_refuse 9867[gw0] [ 84%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_transport_stamped_can_send_request_makes_the_request_channel_refuse 9868tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_notification_metadata 9869[gw2] [ 84%] PASSED tests/shared/test_uri_template.py::test_match_never_raises 9870[gw0] [ 84%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_message_metadata_carries_inbound_notification_metadata 9871tests/shared/test_jsonrpc_dispatcher.py::test_ctx_progress_with_only_progress_value_omits_total_and_message 9872[gw7] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:181-183] 9873tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:223-225] 9874[gw6] [ 84%] PASSED tests/server/mcpserver/test_resolve.py::test_schema_mismatched_fresh_answer_fails_the_call_without_pydantic_leakage[legacy] 9875[gw0] [ 84%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_ctx_progress_with_only_progress_value_omits_total_and_message 9876tests/server/mcpserver/test_resolve.py::test_schema_mismatched_fresh_answer_fails_the_call_without_pydantic_leakage[auto] 9877tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape 9878[gw0] [ 84%] PASSED tests/shared/test_path_security.py::test_safe_join_rejects_symlink_escape 9879tests/shared/test_path_security.py::test_safe_join_base_equals_target 9880[gw0] [ 84%] PASSED tests/shared/test_path_security.py::test_safe_join_base_equals_target 9881tests/shared/test_path_security.py::test_path_escape_error_is_value_error 9882[gw0] [ 84%] PASSED tests/shared/test_path_security.py::test_path_escape_error_is_value_error 9883[gw4] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:173-175] 9884tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result 9885tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] 9886[gw9] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:109-111] 9887[gw0] [ 84%] PASSED tests/shared/test_peer.py::test_peer_sample_sends_create_message_and_returns_typed_result 9888tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only 9889[gw3] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:120-123] 9890tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] 9891[gw0] [ 84%] PASSED tests/shared/test_peer.py::test_peer_sample_validates_result_alias_only 9892tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] 9893[gw1] [ 84%] PASSED tests/shared/test_streamable_http.py::test_client_crash_handled 9894tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result 9895[gw6] [ 84%] PASSED tests/server/mcpserver/test_resolve.py::test_schema_mismatched_fresh_answer_fails_the_call_without_pydantic_leakage[auto] 9896tests/server/mcpserver/test_resolve.py::test_auto_driver_gives_up_when_the_chain_outlasts_its_round_budget 9897tests/test_examples.py::test_simple_echo 9898tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data 9899[gw0] [ 84%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tools_returns_with_tools_result 9900tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result 9901[gw1] [ 84%] PASSED tests/shared/test_streamable_http.py::test_handle_sse_event_skips_empty_data 9902tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version 9903[gw0] [ 84%] PASSED tests/shared/test_peer.py::test_peer_sample_with_tool_choice_only_returns_with_tools_result 9904tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params 9905[gw7] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:223-225] 9906tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:238-246] 9907[gw2] [ 84%] PASSED tests/test_examples.py::test_simple_echo 9908tests/test_examples.py::test_complex_inputs 9909[gw1] [ 84%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_old_protocol_version 9910tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version 9911[gw3] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:11-13] 9912[gw9] [ 84%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:119-121] 9913tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] 9914tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] 9915[gw1] [ 84%] PASSED tests/shared/test_streamable_http.py::test_close_sse_stream_callback_not_provided_for_unknown_protocol_version 9916tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event 9917[gw2] [ 84%] PASSED tests/test_examples.py::test_complex_inputs 9918tests/test_examples.py::test_direct_call_tool_result_return 9919[gw0] [ 84%] PASSED tests/shared/test_peer.py::test_peer_elicit_form_sends_elicitation_create_with_form_params 9920tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params 9921[gw4] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:19-21] 9922[gw0] [ 85%] PASSED tests/shared/test_peer.py::test_peer_elicit_url_sends_elicitation_create_with_url_params 9923tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result 9924tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] 9925[gw2] [ 85%] PASSED tests/test_examples.py::test_direct_call_tool_result_return 9926[gw0] [ 85%] PASSED tests/shared/test_peer.py::test_peer_list_roots_sends_roots_list_and_returns_typed_result 9927tests/test_examples.py::test_desktop 9928tests/shared/test_peer.py::test_peer_list_roots_with_meta_sends_meta_in_params 9929[gw7] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:238-246] 9930[gw0] [ 85%] PASSED tests/shared/test_peer.py::test_peer_list_roots_with_meta_sends_meta_in_params 9931tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:281-283] 9932tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 9933[gw0] [ 85%] PASSED tests/shared/test_peer.py::test_peer_list_roots_is_deprecated_sep_2577 9934tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta 9935[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:84-86] 9936[gw0] [ 85%] PASSED tests/shared/test_peer.py::test_dump_params_merges_meta_over_model_meta 9937tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] 9938[gw9] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:154-156] 9939[gw2] [ 85%] PASSED tests/test_examples.py::test_desktop 9940tests/test_examples.py::test_docs_examples[README.md:54-70] 9941tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias 9942tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] 9943[gw0] [ 85%] PASSED tests/shared/test_peer.py::test_dump_params_serializes_meta_by_alias 9944tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound 9945[gw4] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:44-46] 9946tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] 9947[gw0] [ 85%] PASSED tests/shared/test_peer.py::test_peer_notify_forwards_to_wrapped_outbound 9948[gw8] [ 85%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[unmapped-exception] 9949tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none 9950tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[mcp-error] 9951[gw0] [ 85%] PASSED tests/shared/test_peer.py::test_peer_ping_sends_ping_and_returns_none 9952tests/shared/test_sse.py::test_raw_sse_connection 9953[gw7] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:281-283] 9954tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:297-301] 9955[gw1] [ 85%] PASSED tests/shared/test_streamable_http.py::test_initialize_with_unknown_protocol_version_gets_no_priming_event 9956[gw2] [ 85%] PASSED tests/test_examples.py::test_docs_examples[README.md:54-70] 9957[gw9] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:166-168] 9958[gw4] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:68-70] 9959tests/test_examples.py::test_docs_examples[README.md:97-110] 9960[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:114-116] 9961tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] 9962tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] 9963tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] 9964tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context 9965[gw0] [ 85%] PASSED tests/shared/test_sse.py::test_raw_sse_connection 9966tests/shared/test_sse.py::test_sse_client_basic_connection 9967[gw7] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:297-301] 9968tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:326-328] 9969[gw2] [ 85%] PASSED tests/test_examples.py::test_docs_examples[README.md:97-110] 9970tests/test_examples.py::test_docs_examples[docs/index.md:43-45] 9971[gw4] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/protocol-versions.md:101-103] 9972tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] 9973[gw9] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:180-182] 9974[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:147-149] 9975tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] 9976tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] 9977[gw7] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:326-328] 9978[gw0] [ 85%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection 9979tests/shared/test_sse.py::test_sse_client_on_session_created 9980tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:330-334] 9981[gw4] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:57-61] 9982tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] 9983[gw2] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/index.md:43-45] 9984[gw5] [ 85%] PASSED tests/docs/test_translations.py::test_translate_without_lang_works_through_every_language_with_that_languages_own_prompt 9985[gw9] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:206-208] 9986tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] 9987tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] 9988tests/docs/test_translations.py::test_repair_turn_feeds_the_findings_back_and_accepts_the_fixed_reply 9989[gw0] [ 85%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created 9990tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] 9991[gw0] [ 85%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc123-abc123] 9992tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] 9993[gw4] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:65-71] 9994tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] 9995[gw0] [ 85%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?session_id=def456-def456] 9996tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] 9997[gw0] [ 85%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?sessionId=abc&session_id=def-abc] 9998tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] 9999[gw0] [ 85%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages?other=value-None] 10000tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] 10001[gw0] [ 85%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[/messages-None] 10002tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] 10003[gw0] [ 85%] PASSED tests/shared/test_sse.py::test_extract_session_id_from_endpoint[-None] 10004tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id 10005[gw9] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:222-224] 10006[gw7] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:330-334] 10007tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] 10008[gw2] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/whats-new.md:18-22] 10009tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] 10010tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:342-344] 10011[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:163-165] 10012[gw0] [ 85%] PASSED tests/shared/test_sse.py::test_sse_client_on_session_created_not_called_when_no_session_id 10013tests/shared/test_sse.py::test_sse_client_happy_request_and_response 10014tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] 10015[gw4] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:81-86] 10016tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] 10017[gw0] [ 85%] PASSED tests/shared/test_sse.py::test_sse_client_happy_request_and_response 10018[gw9] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:11-13] 10019[gw2] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:11-13] 10020tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] 10021tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] 10022tests/shared/test_sse.py::test_sse_client_exception_handling 10023[gw7] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:342-344] 10024tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:352-354] 10025[gw4] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:90-97] 10026tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] 10027[gw0] [ 85%] PASSED tests/shared/test_sse.py::test_sse_client_exception_handling 10028tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app 10029[gw3] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/prompts.md:178-180] 10030tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] 10031[gw9] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:21-24] 10032tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] 10033[gw6] [ 85%] PASSED tests/server/mcpserver/test_resolve.py::test_auto_driver_gives_up_when_the_chain_outlasts_its_round_budget 10034[gw2] [ 85%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/testing.md:39-70] 10035tests/server/mcpserver/test_resolve.py::test_aliased_elicitation_model_round_trips_through_request_state 10036tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] 10037[gw5] [ 86%] PASSED tests/docs/test_translations.py::test_repair_turn_feeds_the_findings_back_and_accepts_the_fixed_reply 10038tests/docs/test_translations.py::test_code_block_moved_into_another_section_is_repaired_not_published 10039[gw0] [ 86%] PASSED tests/shared/test_sse.py::test_sse_client_basic_connection_mounted_app 10040tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] 10041[gw7] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:352-354] 10042tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:371-375] 10043[gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/deprecated.md:108-114] 10044[gw6] [ 86%] PASSED tests/server/mcpserver/test_resolve.py::test_aliased_elicitation_model_round_trips_through_request_state 10045tests/server/mcpserver/test_resolve.py::test_divergent_validation_and_serialization_aliases_round_trip 10046tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] 10047[gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:50-52] 10048tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] 10049[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:24-26] 10050tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] 10051[gw8] [ 86%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_peer_cancel_drops_the_error_of_a_handler_that_fails_after_cancel[mcp-error] 10052tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[hook-bug] 10053[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/index.md:24-36] 10054[gw7] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:371-375] 10055tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] 10056tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:397-399] 10057[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:103-105] 10058tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] 10059[gw6] [ 86%] PASSED tests/server/mcpserver/test_resolve.py::test_divergent_validation_and_serialization_aliases_round_trip 10060tests/server/mcpserver/test_resolve.py::test_state_entry_never_replaces_a_resolver_computed_value 10061[gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:56-59] 10062tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] 10063[gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:7-9] 10064tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] 10065[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:162-164] 10066tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] 10067[gw7] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:397-399] 10068tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] 10069[gw6] [ 86%] PASSED tests/server/mcpserver/test_resolve.py::test_state_entry_never_replaces_a_resolver_computed_value 10070tests/server/mcpserver/test_resolve.py::test_state_decline_entry_for_a_pure_resolver_is_ignored 10071[gw5] [ 86%] PASSED tests/docs/test_translations.py::test_code_block_moved_into_another_section_is_repaired_not_published 10072tests/docs/test_translations.py::test_code_block_moved_out_of_a_retranslated_section_gets_repair_turns_like_any_other_finding 10073[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:116-118] 10074[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/real-host.md:9-11] 10075tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] 10076tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] 10077[gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:67-69] 10078tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] 10079[gw6] [ 86%] PASSED tests/server/mcpserver/test_resolve.py::test_state_decline_entry_for_a_pure_resolver_is_ignored 10080tests/server/mcpserver/test_resolve.py::test_dynamic_schema_resolver_restores_across_rounds 10081[gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:25-29] 10082tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] 10083[gw7] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:37-39] 10084[gw6] [ 86%] PASSED tests/server/mcpserver/test_resolve.py::test_dynamic_schema_resolver_restores_across_rounds 10085tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[InputRequiredResult] 10086[gw6] [ 86%] PASSED tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[InputRequiredResult] 10087[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:179-181] 10088tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] 10089tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] 10090tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[Union0] 10091[gw6] [ 86%] PASSED tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[Union0] 10092tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[Annotated] 10093[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:11-13] 10094[gw6] [ 86%] PASSED tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[Annotated] 10095tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[Union1] 10096tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] 10097[gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/media.md:88-90] 10098[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:11-13] 10099[gw6] [ 86%] PASSED tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[Union1] 10100tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[IRRAlias] 10101tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] 10102tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] 10103[gw6] [ 86%] PASSED tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[IRRAlias] 10104tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[IRRAliasGeneric] 10105[gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:51-58] 10106tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] 10107[gw6] [ 86%] PASSED tests/server/mcpserver/test_resolve.py::test_tool_combining_resolvers_with_input_required_return_is_rejected[IRRAliasGeneric] 10108[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:36-38] 10109tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] 10110[gw7] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/get-started/first-steps.md:89-91] 10111[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:22-24] 10112tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] 10113[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:218-220] 10114tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] 10115tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] 10116tests/server/mcpserver/test_resolve.py::test_unevaluable_alias_and_parameterized_generics_declare_no_arm 10117[gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:93-95] 10118tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] 10119[gw6] [ 86%] PASSED tests/server/mcpserver/test_resolve.py::test_unevaluable_alias_and_parameterized_generics_declare_no_arm 10120tests/server/mcpserver/test_resolve.py::test_tool_returning_input_required_dynamically_with_resolvers_is_an_error 10121[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:42-47] 10122tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] 10123[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:59-61] 10124tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] 10125[gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:99-102] 10126[gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:69-73] 10127tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] 10128tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] 10129[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/uri-templates.md:232-234] 10130[gw7] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:79-81] 10131tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] 10132tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] 10133[gw6] [ 86%] PASSED tests/server/mcpserver/test_resolve.py::test_tool_returning_input_required_dynamically_with_resolvers_is_an_error 10134tests/server/mcpserver/test_resolve.py::test_question_digest_pins_the_rendered_question 10135[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:51-53] 10136[gw2] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:78-80] 10137[gw4] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/troubleshooting.md:77-81] 10138tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] 10139tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] 10140[gw6] [ 86%] PASSED tests/server/mcpserver/test_resolve.py::test_question_digest_pins_the_rendered_question 10141tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] 10142tests/server/mcpserver/test_resolve.py::test_state_round_trips_question_digests_at_v3 10143[gw9] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:112-114] 10144[gw6] [ 86%] PASSED tests/server/mcpserver/test_resolve.py::test_state_round_trips_question_digests_at_v3 10145tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] 10146[gw3] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:13-15] 10147tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] 10148tests/server/mcpserver/test_resolve.py::test_restored_answer_with_matching_digest_completes_without_reasking 10149[gw7] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:96-101] 10150tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] 10151[gw0] [ 86%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:87-89] 10152tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] 10153[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:107-109] 10154tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] 10155[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:9-11] 10156tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] 10157[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/resources.md:103-105] 10158tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] 10159[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:21-25] 10160tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] 10161[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:122-126] 10162tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] 10163[gw8] [ 87%] PASSED tests/shared/test_jsonrpc_dispatcher.py::test_a_raising_unanswered_hook_is_contained[hook-bug] 10164tests/shared/test_sse.py::test_request_context_propagation 10165[gw5] [ 87%] PASSED tests/docs/test_translations.py::test_code_block_moved_out_of_a_retranslated_section_gets_repair_turns_like_any_other_finding 10166tests/docs/test_translations.py::test_shortened_list_and_table_are_fed_back_for_repair_before_the_page_is_published 10167[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:93-95] 10168tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] 10169[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:158-160] 10170[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:47-50] 10171tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] 10172tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] 10173[gw6] [ 87%] PASSED tests/server/mcpserver/test_resolve.py::test_restored_answer_with_matching_digest_completes_without_reasking 10174tests/server/mcpserver/test_resolve.py::test_restored_entry_is_repersisted_with_its_question_digest_intact 10175[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/handling-errors.md:46-48] 10176tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] 10177[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:11-13] 10178tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] 10179[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/callbacks.md:122-124] 10180[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:136-138] 10181tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] 10182tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] 10183[gw6] [ 87%] PASSED tests/server/mcpserver/test_resolve.py::test_restored_entry_is_repersisted_with_its_question_digest_intact 10184tests/server/mcpserver/test_resolve.py::test_decline_and_cancel_entries_carry_the_question_digest 10185[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:20-22] 10186tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] 10187[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:72-74] 10188tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] 10189[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:100-102] 10190tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] 10191[gw5] [ 87%] PASSED tests/docs/test_translations.py::test_shortened_list_and_table_are_fed_back_for_repair_before_the_page_is_published 10192tests/docs/test_translations.py::test_page_still_broken_after_two_repair_turns_fails_and_keeps_the_previous_translation 10193[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:24-26] 10194tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] 10195[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:11-13] 10196tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] 10197[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:95-97] 10198[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:9-11] 10199tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] 10200tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] 10201[gw6] [ 87%] PASSED tests/server/mcpserver/test_resolve.py::test_decline_and_cancel_entries_carry_the_question_digest 10202tests/server/mcpserver/test_resolve.py::test_state_entry_without_a_question_digest_is_dropped_and_reasked 10203[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:11-13] 10204tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] 10205[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:98-100] 10206tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] 10207[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:46-48] 10208[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:80-82] 10209tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] 10210tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] 10211[gw6] [ 87%] PASSED tests/server/mcpserver/test_resolve.py::test_state_entry_without_a_question_digest_is_dropped_and_reasked 10212[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:28-30] 10213[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:130-132] 10214tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] 10215tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] 10216[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/logging.md:21-24] 10217tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] 10218tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] 10219[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:86-89] 10220[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:127-129] 10221tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] 10222tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] 10223[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:48-50] 10224tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] 10225[gw8] [ 87%] PASSED tests/shared/test_sse.py::test_request_context_propagation 10226tests/shared/test_sse.py::test_request_context_isolation 10227[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:55-57] 10228tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] 10229[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/run/deploy.md:162-164] 10230tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] 10231[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:14-16] 10232tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] 10233[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:13-15] 10234tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] 10235[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:61-63] 10236tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] 10237[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/context.md:98-100] 10238tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] 10239[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/caching.md:76-80] 10240tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] 10241[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/tools.md:147-149] 10242tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] 10243[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:22-24] 10244tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] 10245[gw5] [ 87%] PASSED tests/docs/test_translations.py::test_page_still_broken_after_two_repair_turns_fails_and_keeps_the_previous_translation 10246tests/docs/test_translations.py::test_status_classifies_each_page_against_the_current_english_and_lists_removable_files 10247[gw2] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:71-73] 10248tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] 10249[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:11-13] 10250tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] 10251[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:33-35] 10252tests/test_examples.py::test_docs_examples[docs/client/transports.md:93-95] 10253[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/sampling-and-roots.md:27-29] 10254tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] 10255[gw9] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:20-22] 10256tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] 10257[gw7] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:11-13] 10258tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:78-80] 10259[gw4] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:58-60] 10260tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] 10261[gw3] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:11-13] 10262[gw0] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/oauth-clients.md:110-112] 10263[gw6] [ 87%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:93-95] 10264tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] 10265tests/test_examples.py::test_docs_examples[docs/client/transports.md:113-115] 10266[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:94-96] 10267tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] 10268tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] 10269[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:47-49] 10270tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] 10271[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/lifespan.md:78-80] 10272tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] 10273[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/index.md:95-97] 10274tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] 10275[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/completions.md:106-108] 10276[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/transports.md:113-115] 10277tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] 10278tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] 10279[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:52-54] 10280tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] 10281[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:11-13] 10282[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:118-120] 10283tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] 10284tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] 10285[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:172-176] 10286[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:9-11] 10287tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] 10288tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] 10289[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:24-26] 10290[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/servers/structured-output.md:11-13] 10291tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] 10292tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] 10293[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:68-70] 10294[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/elicitation.md:132-134] 10295[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:67-69] 10296tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] 10297tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] 10298tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:79-107] 10299[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/opentelemetry.md:83-89] 10300tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] 10301[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:180-183] 10302tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] 10303[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:39-41] 10304tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] 10305[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/identity-assertion.md:83-85] 10306tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] 10307[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:24-26] 10308[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:98-100] 10309tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] 10310tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] 10311[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:79-107] 10312tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:115-124] 10313[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:11-13] 10314tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] 10315[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:191-193] 10316tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] 10317[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:60-62] 10318tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] 10319[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:11-13] 10320[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:38-40] 10321tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] 10322tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] 10323[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/dependencies.md:141-143] 10324[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:52-54] 10325tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] 10326tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] 10327[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:115-124] 10328tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:130-132] 10329[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:204-206] 10330[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:78-80] 10331tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] 10332tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] 10333[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/multi-round-trip.md:54-56] 10334tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] 10335[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:82-84] 10336[gw6] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:21-23] 10337tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] 10338tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] 10339[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:11-13] 10340[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:11-13] 10341[gw8] [ 88%] PASSED tests/shared/test_sse.py::test_request_context_isolation 10342tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] 10343tests/shared/test_sse.py::test_sse_message_id_coercion 10344tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] 10345[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:90-92] 10346[gw8] [ 88%] PASSED tests/shared/test_sse.py::test_sse_message_id_coercion 10347tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] 10348tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] 10349[gw8] [ 88%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/-/messages/] 10350tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] 10351[gw3] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/subscriptions.md:130-132] 10352tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] 10353[gw8] [ 88%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[messages/-/messages/] 10354tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] 10355[gw8] [ 88%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/-/] 10356tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] 10357[gw8] [ 88%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[http://example.com/messages/-ValueError] 10358[gw9] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:13-15] 10359tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] 10360[gw5] [ 88%] PASSED tests/docs/test_translations.py::test_status_classifies_each_page_against_the_current_english_and_lists_removable_files 10361[gw8] [ 88%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[//example.com/messages/-ValueError] 10362tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] 10363tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] 10364[gw8] [ 88%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[ftp://example.com/messages/-ValueError] 10365tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] 10366[gw8] [ 88%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/?param=value-ValueError] 10367tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] 10368[gw4] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/run/asgi.md:93-95] 10369[gw8] [ 88%] PASSED tests/shared/test_sse.py::test_sse_server_transport_endpoint_validation[/messages/#fragment-ValueError] 10370tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings 10371[gw8] [ 88%] PASSED tests/shared/test_sse.py::test_sse_client_handles_empty_keepalive_pings 10372tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect 10373[gw0] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:15-17] 10374tests/test_types.py::test_client_capabilities_with_sampling_tools 10375[gw7] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/handlers/progress.md:27-47] 10376[gw2] [ 88%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:119-121] 10377tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] 10378tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] 10379tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] 10380[gw8] [ 88%] PASSED tests/shared/test_sse.py::test_sse_client_follows_redirect_within_origin_on_connect 10381tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect 10382[gw4] [ 89%] PASSED tests/test_types.py::test_client_capabilities_with_sampling_tools 10383tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields 10384[gw8] [ 89%] PASSED tests/shared/test_sse.py::test_sse_client_does_not_follow_redirect_to_another_origin_on_connect 10385tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect 10386tests/docs/test_translations.py::test_stage_overlays_translations_injects_notices_and_rewrites_api_links 10387[gw4] [ 89%] PASSED tests/test_types.py::test_tool_preserves_json_schema_2020_12_fields 10388tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields 10389[gw4] [ 89%] PASSED tests/test_types.py::test_list_tools_result_preserves_json_schema_2020_12_fields 10390tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete 10391[gw4] [ 89%] PASSED tests/test_types.py::test_concrete_wire_results_always_dump_result_type_complete 10392tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private 10393[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:57-59] 10394[gw4] [ 89%] PASSED tests/test_types.py::test_cacheable_results_default_to_immediately_stale_private 10395tests/test_types.py::test_empty_result_dumps_no_fields_by_default 10396tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] 10397[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/pagination.md:45-47] 10398tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] 10399[gw4] [ 89%] PASSED tests/test_types.py::test_empty_result_dumps_no_fields_by_default 10400tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged 10401[gw4] [ 89%] PASSED tests/test_types.py::test_empty_result_dumps_result_type_only_when_explicitly_tagged 10402tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag 10403[gw4] [ 89%] PASSED tests/test_types.py::test_input_required_result_dumps_its_discriminating_tag 10404tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state 10405[gw4] [ 89%] PASSED tests/test_types.py::test_input_required_result_requires_at_least_one_of_input_requests_or_request_state 10406tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly 10407[gw4] [ 89%] PASSED tests/test_types.py::test_mcp_types_namespace_mirrors_mcp_types_exactly 10408tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] 10409[gw4] [ 89%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[jsonrpc] 10410tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] 10411[gw4] [ 89%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[methods] 10412tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] 10413[gw4] [ 89%] PASSED tests/test_types.py::test_mcp_types_submodules_mirror_mcp_types_submodules_exactly[version] 10414tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] 10415[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:164-166] 10416[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-06-18] 10417tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] 10418[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-11-25] 10419tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] 10420tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] 10421[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2026-07-28] 10422[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:23-25] 10423tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] 10424[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:141-143] 10425tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] 10426tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] 10427[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2024-11-05] 10428tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] 10429[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-03-26] 10430tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] 10431[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-06-18] 10432tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] 10433[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[initialize-2025-11-25] 10434tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] 10435[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:23-25] 10436tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] 10437[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2024-11-05] 10438[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:63-67] 10439tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] 10440[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-03-26] 10441tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] 10442[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-06-18] 10443tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] 10444tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] 10445[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[logging/setLevel-2025-11-25] 10446tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] 10447[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2024-11-05] 10448tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] 10449[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-03-26] 10450[gw8] [ 89%] PASSED tests/shared/test_sse.py::test_sse_session_cleanup_on_disconnect 10451tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] 10452[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-06-18] 10453tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] 10454[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[ping-2025-11-25] 10455tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] 10456[gw0] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/session-groups.md:45-47] 10457[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2024-11-05] 10458[gw7] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:178-180] 10459tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] 10460[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-03-26] 10461tests/shared/test_streamable_http.py::test_accept_header_validation 10462[gw2] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:172-174] 10463tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] 10464tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] 10465tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] 10466[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-06-18] 10467tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] 10468[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2025-11-25] 10469tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] 10470[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/get-2026-07-28] 10471[gw9] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:54-56] 10472tests/test_types.py::test_jsonrpc_request 10473tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] 10474[gw6] [ 89%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:96-98] 10475tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] 10476[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2024-11-05] 10477tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] 10478[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-03-26] 10479tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] 10480tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] 10481[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-06-18] 10482tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] 10483[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2025-11-25] 10484tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] 10485[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[prompts/list-2026-07-28] 10486tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] 10487[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2024-11-05] 10488tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] 10489[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-03-26] 10490tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] 10491[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-06-18] 10492tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] 10493[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2025-11-25] 10494tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] 10495[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/list-2026-07-28] 10496tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] 10497[gw4] [ 89%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2024-11-05] 10498[gw7] [ 90%] PASSED tests/test_types.py::test_jsonrpc_request 10499tests/test_types.py::test_method_initialization 10500[gw5] [ 90%] PASSED tests/docs/test_translations.py::test_stage_overlays_translations_injects_notices_and_rewrites_api_links 10501[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:11-13] 10502tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] 10503tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] 10504[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-03-26] 10505tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] 10506[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-06-18] 10507tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] 10508[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2025-11-25] 10509[gw8] [ 90%] PASSED tests/shared/test_streamable_http.py::test_accept_header_validation 10510tests/docs/test_translations.py::test_stage_serves_an_outdated_translation_exactly_as_generated_and_a_missing_one_in_english 10511[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:178-180] 10512tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] 10513tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] 10514[gw7] [ 90%] PASSED tests/test_types.py::test_method_initialization 10515[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/read-2026-07-28] 10516tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] 10517[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2024-11-05] 10518tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] 10519[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-03-26] 10520tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] 10521tests/test_types.py::test_tool_use_content 10522[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:63-65] 10523tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] 10524[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-06-18] 10525tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] 10526tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] 10527[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/subscribe-2025-11-25] 10528tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] 10529[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2024-11-05] 10530tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] 10531[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-03-26] 10532tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] 10533[gw7] [ 90%] PASSED tests/test_types.py::test_tool_use_content 10534tests/test_types.py::test_tool_result_content 10535[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:102-106] 10536tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] 10537[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-06-18] 10538tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] 10539[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2025-11-25] 10540tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] 10541[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/templates/list-2026-07-28] 10542tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] 10543[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2024-11-05] 10544tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] 10545[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-03-26] 10546tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] 10547[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-06-18] 10548tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] 10549[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:34-36] 10550[gw7] [ 90%] PASSED tests/test_types.py::test_tool_result_content 10551tests/test_types.py::test_tool_choice 10552tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] 10553[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[resources/unsubscribe-2025-11-25] 10554tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] 10555[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[server/discover-2026-07-28] 10556tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] 10557[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[subscriptions/listen-2026-07-28] 10558tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] 10559[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2024-11-05] 10560[gw7] [ 90%] PASSED tests/test_types.py::test_tool_choice 10561tests/test_types.py::test_sampling_message_with_user_role 10562tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] 10563[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-03-26] 10564[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:197-201] 10565tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] 10566[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-06-18] 10567tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] 10568tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] 10569[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2025-11-25] 10570tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] 10571[gw7] [ 90%] PASSED tests/test_types.py::test_sampling_message_with_user_role 10572[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/call-2026-07-28] 10573tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] 10574[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2024-11-05] 10575tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] 10576[gw6] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:130-134] 10577tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] 10578[gw9] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:95-97] 10579tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] 10580tests/test_types.py::test_sampling_message_with_assistant_role 10581[gw7] [ 90%] PASSED tests/test_types.py::test_sampling_message_with_assistant_role 10582[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-03-26] 10583tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] 10584[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-06-18] 10585tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] 10586tests/test_types.py::test_sampling_message_backward_compatibility 10587[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2025-11-25] 10588[gw0] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:40-42] 10589tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] 10590[gw7] [ 90%] PASSED tests/test_types.py::test_sampling_message_backward_compatibility 10591tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] 10592tests/test_types.py::test_create_message_request_params_with_tools 10593[gw4] [ 90%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[tools/list-2026-07-28] 10594tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] 10595[gw8] [ 90%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*] 10596[gw4] [ 90%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2024-11-05] 10597tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] 10598[gw7] [ 90%] PASSED tests/test_types.py::test_create_message_request_params_with_tools 10599tests/test_types.py::test_create_message_result_with_tool_use 10600[gw4] [ 90%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-03-26] 10601tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] 10602tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] 10603[gw4] [ 90%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-06-18] 10604tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] 10605[gw2] [ 90%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:208-210] 10606tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] 10607[gw4] [ 90%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-03-26] 10608tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] 10609[gw4] [ 90%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-06-18] 10610tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] 10611[gw7] [ 90%] PASSED tests/test_types.py::test_create_message_result_with_tool_use 10612tests/test_types.py::test_create_message_result_basic 10613[gw4] [ 90%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2025-11-25] 10614[gw7] [ 91%] PASSED tests/test_types.py::test_create_message_result_basic 10615tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] 10616[gw4] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2024-11-05] 10617tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-03-26] 10618[gw4] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-03-26] 10619tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-06-18] 10620[gw4] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-06-18] 10621tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-11-25] 10622[gw6] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:152-154] 10623[gw9] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/apps.md:159-161] 10624tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] 10625[gw4] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/get-2025-11-25] 10626tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] 10627tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2024-11-05] 10628[gw3] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:21-23] 10629[gw1] [ 91%] PASSED tests/shared/test_streamable_http.py::test_server_close_sse_stream_via_context 10630tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection 10631tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] 10632[gw4] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2024-11-05] 10633tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-03-26] 10634[gw4] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-03-26] 10635tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-11-25] 10636[gw4] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-11-25] 10637tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2024-11-05] 10638[gw8] [ 91%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*, text/*] 10639[gw0] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:46-48] 10640[gw4] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2024-11-05] 10641tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-03-26] 10642tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] 10643tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] 10644[gw4] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-03-26] 10645tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] 10646tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-06-18] 10647[gw2] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:228-231] 10648tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] 10649[gw4] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-06-18] 10650tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-11-25] 10651[gw9] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:17-19] 10652[gw4] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/subscribe-2025-11-25] 10653tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] 10654[gw6] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/index.md:166-168] 10655tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2024-11-05] 10656[gw3] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/run/authorization.md:93-95] 10657tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly 10658[gw6] [ 91%] SKIPPED tests/transports/stdio/test_windows.py::test_a_tool_spawned_python_child_with_default_stdin_completes_promptly 10659tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version 10660tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] 10661[gw6] [ 91%] PASSED tests/types/test_methods.py::test_maps_define_exactly_the_expected_methods_for_every_known_version 10662tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps 10663[gw6] [ 91%] PASSED tests/types/test_methods.py::test_spec_client_method_sets_are_the_client_direction_projection_of_the_surface_maps 10664[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[completion/complete-2025-11-25] 10665[gw0] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/client/subscriptions.md:68-70] 10666tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] 10667tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] 10668[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2024-11-05] 10669tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] 10670[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-03-26] 10671tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] 10672[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-06-18] 10673[gw2] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:250-252] 10674[gw9] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:42-55] 10675tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] 10676tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] 10677[gw8] [ 91%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[text/*, application/json] 10678tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] 10679tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] 10680[gw4] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2024-11-05] 10681[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[initialize-2025-11-25] 10682tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-03-26] 10683tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] 10684[gw4] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-03-26] 10685[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2024-11-05] 10686[gw8] [ 91%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/json, text/*] 10687tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-06-18] 10688[gw0] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:15-17] 10689tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] 10690tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] 10691tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms 10692[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-03-26] 10693[gw0] [ 91%] PASSED tests/types/test_methods.py::test_input_required_methods_mirror_the_monolith_input_required_arms 10694tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes 10695tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] 10696[gw2] [ 91%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/extensions.md:258-260] 10697[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-06-18] 10698tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] 10699tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] 10700[gw8] [ 91%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[*/*;q=0.8] 10701[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[logging/setLevel-2025-11-25] 10702tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] 10703tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] 10704[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[ping-2024-11-05] 10705tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] 10706tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it 10707[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-03-26] 10708tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] 10709[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-06-18] 10710tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] 10711[gw6] [ 91%] PASSED tests/types/test_methods.py::test_elicit_result_surface_accepts_null_content_values_at_every_version_that_defines_it 10712tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values 10713[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2025-11-25] 10714[gw8] [ 91%] PASSED tests/shared/test_streamable_http.py::test_accept_header_wildcard[application/*;q=0.9, text/*;q=0.8] 10715[gw6] [ 91%] PASSED tests/types/test_methods.py::test_discovery_capabilities_preserve_nested_json_values 10716tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas 10717tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 10718[gw4] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-06-18] 10719[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_keeps_2026_only_keys_at_2026_07_28 10720tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] 10721[gw6] [ 91%] PASSED tests/types/test_methods.py::test_elicit_request_surface_accepts_loose_property_schemas 10722tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas 10723tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-11-25] 10724[gw4] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/templates/list-2025-11-25] 10725tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] 10726[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2024-11-05] 10727tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] 10728[gw7] [ 91%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-03-26] 10729tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] 10730[gw6] [ 92%] PASSED tests/types/test_methods.py::test_2025_11_25_tool_schema_surfaces_accept_boolean_sub_schemas 10731tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys 10732[gw6] [ 92%] PASSED tests/types/test_methods.py::test_response_map_keys_mirror_the_request_map_keys 10733tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] 10734[gw4] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2024-11-05] 10735tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] 10736[gw4] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-03-26] 10737tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] 10738[gw4] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-06-18] 10739tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] 10740[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-06-18] 10741tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] 10742tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions 10743[gw6] [ 92%] PASSED tests/types/test_methods.py::test_response_row_values_match_the_pinned_classes_and_unions 10744tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps 10745[gw4] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/unsubscribe-2025-11-25] 10746tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2024-11-05] 10747[gw4] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2024-11-05] 10748tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] 10749[gw4] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-03-26] 10750tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] 10751[gw4] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-06-18] 10752tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] 10753[gw4] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/call-2025-11-25] 10754[gw6] [ 92%] PASSED tests/types/test_methods.py::test_surface_keys_agree_with_their_classes_and_the_monolith_maps 10755tests/types/test_methods.py::test_built_in_maps_are_immutable 10756[gw6] [ 92%] PASSED tests/types/test_methods.py::test_built_in_maps_are_immutable 10757tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal 10758[gw8] [ 92%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/html] 10759tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] 10760[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2025-11-25] 10761tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] 10762[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_arbitrary_meta_value_identically[2026-07-28] 10763tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras 10764[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_preserves_open_type_extras 10765[gw6] [ 92%] PASSED tests/types/test_methods.py::test_cacheable_methods_mirror_the_cacheable_method_literal 10766[gw0] [ 92%] PASSED tests/types/test_methods.py::test_is_input_required_matches_typed_and_wire_shapes 10767tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row 10768tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] 10769tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp 10770[gw5] [ 92%] PASSED tests/docs/test_translations.py::test_stage_serves_an_outdated_translation_exactly_as_generated_and_a_missing_one_in_english 10771tests/docs/test_translations.py::test_stage_keeps_showing_the_generated_code_block_after_its_english_changes_until_the_page_is_retranslated 10772[gw3] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:21-23] 10773tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] 10774tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] 10775[gw9] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:89-91] 10776[gw6] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation--] 10777[gw4] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[tools/list-2024-11-05] 10778[gw8] [ 92%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[application/*] 10779tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] 10780tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] 10781tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] 10782tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] 10783[gw6] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Roots--] 10784tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] 10785[gw6] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling--] 10786tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] 10787[gw6] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Elicitation1--] 10788tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] 10789[gw4] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Argument--] 10790[gw6] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Sampling1--] 10791tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] 10792tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] 10793[gw6] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests--] 10794tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] 10795[gw4] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Context--] 10796tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] 10797[gw2] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/middleware.md:21-23] 10798[gw6] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks--] 10799[gw8] [ 92%] PASSED tests/shared/test_streamable_http.py::test_accept_header_incompatible[text/*] 10800[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_top_level_server_info_on_discover_but_keeps_the_meta_stamp 10801[gw4] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Completion--] 10802tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] 10803tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] 10804tests/shared/test_streamable_http.py::test_content_type_validation 10805[gw4] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteResult--] 10806tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] 10807[gw6] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ClientCapabilities--] 10808tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] 10809[gw4] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitResult--] 10810tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] 10811tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field 10812tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions 10813[gw4] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params1--] 10814tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] 10815[gw6] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelPreferences--] 10816tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] 10817[gw4] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitationCompleteNotification--] 10818[gw7] [ 92%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_an_unknown_nested_tool_field 10819[gw2] [ 92%] PASSED tests/types/test_methods.py::test_2026_07_28_shaped_result_extras_pass_at_earlier_versions 10820tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step 10821tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] 10822[gw4] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Error--] 10823tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] 10824[gw6] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Notification--] 10825tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] 10826[gw4] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RelatedTaskMetadata--] 10827[gw8] [ 92%] PASSED tests/shared/test_streamable_http.py::test_content_type_validation 10828tests/shared/test_streamable_http.py::test_json_validation 10829[gw2] [ 92%] PASSED tests/types/test_methods.py::test_embedded_input_request_entries_without_method_reject_at_the_surface_step 10830tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] 10831tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 10832[gw6] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.NotificationParams--] 10833[gw3] [ 92%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:33-35] 10834tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] 10835[gw0] [ 92%] PASSED tests/types/test_methods.py::test_minimal_request_bodies_parse_through_every_request_row 10836tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] 10837tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row 10838[gw6] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedResult--] 10839tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] 10840[gw4] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Request--] 10841[gw6] [ 92%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptArgument--] 10842tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] 10843tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] 10844[gw0] [ 92%] PASSED tests/types/test_methods.py::test_minimal_notification_bodies_parse_through_every_notification_row 10845tests/types/test_methods.py::test_serialize_server_result_raises_key_error_for_an_absent_row_and_value_error_for_an_unknown_version 10846[gw2] [ 93%] PASSED tests/types/test_methods.py::test_input_required_url_elicit_without_elicitation_id_parses_at_2026 10847[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptListChangedNotification--] 10848tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] 10849[gw9] [ 93%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:100-102] 10850tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row 10851[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptReference--] 10852tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject 10853[gw8] [ 93%] PASSED tests/shared/test_streamable_http.py::test_json_validation 10854tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] 10855[gw7] [ 93%] PASSED tests/types/test_methods.py::test_serialize_server_result_raises_key_error_for_an_absent_row_and_value_error_for_an_unknown_version 10856tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one 10857[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequestParams--] 10858tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] 10859[gw2] [ 93%] PASSED tests/types/test_methods.py::test_none_params_omit_the_key_so_required_params_reject 10860tests/shared/test_streamable_http.py::test_json_parsing 10861[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Result--] 10862tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] 10863tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] 10864[gw7] [ 93%] PASSED tests/types/test_methods.py::test_importing_the_module_builds_no_adapters_and_identical_rows_share_one 10865[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Root--] 10866tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] 10867[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RootsListChangedNotification--] 10868tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] 10869[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompts--] 10870tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] 10871[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resources--] 10872tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] 10873[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools--] 10874[gw8] [ 93%] PASSED tests/shared/test_streamable_http.py::test_json_parsing 10875tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] 10876[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Requests1--] 10877tests/shared/test_streamable_http.py::test_method_not_allowed 10878tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] 10879[gw0] [ 93%] PASSED tests/types/test_methods.py::test_minimal_result_bodies_parse_through_every_result_row 10880tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step 10881tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] 10882[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolAnnotations--] 10883tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing 10884[gw0] [ 93%] PASSED tests/types/test_methods.py::test_non_file_root_uri_passes_the_surface_step_and_rejects_at_the_monolith_step 10885tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] 10886[gw2] [ 93%] PASSED tests/types/test_methods.py::test_snake_case_spellings_of_required_aliased_fields_reject_as_missing 10887tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape 10888tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions 10889[gw2] [ 93%] PASSED tests/types/test_methods.py::test_extension_map_rows_parse_through_the_same_functions 10890tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit 10891[gw6] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolChoice--] 10892[gw0] [ 93%] PASSED tests/types/test_methods.py::test_absent_map_keys_raise_key_error_for_every_gate_shape 10893tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function 10894[gw3] [ 93%] PASSED tests/test_examples.py::test_docs_examples[docs/run/legacy-clients.md:93-95] 10895[gw0] [ 93%] PASSED tests/types/test_methods.py::test_unknown_version_strings_raise_value_error_on_every_parse_function 10896[gw2] [ 93%] PASSED tests/types/test_methods.py::test_inconsistent_extension_maps_raise_runtime_error_after_the_surface_hit 10897[gw8] [ 93%] PASSED tests/shared/test_streamable_http.py::test_method_not_allowed 10898tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders 10899tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing 10900tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule 10901tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] 10902[gw0] [ 93%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_missing_a_required_meta_entry_reject_as_missing 10903[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params2--] 10904tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] 10905[gw7] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BaseMetadata--] 10906tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info 10907[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadResult--] 10908tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] 10909tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] 10910[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params3--] 10911[gw9] [ 93%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:124-126] 10912tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] 10913[gw7] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.BlobResourceContents--] 10914[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Icon--] 10915[gw0] [ 93%] PASSED tests/types/test_methods.py::test_2026_07_28_requests_accept_meta_without_the_optional_client_info 10916tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] 10917[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Implementation--] 10918tests/types/test_methods.py::test_2026_07_28_results_require_result_type 10919[gw0] [ 93%] PASSED tests/types/test_methods.py::test_2026_07_28_results_require_result_type 10920tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] 10921tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] 10922tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] 10923tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it 10924[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCNotification--] 10925[gw0] [ 93%] PASSED tests/types/test_methods.py::test_empty_result_body_parses_at_versions_that_define_it 10926tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] 10927[gw7] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Params--] 10928[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotificationParams--] 10929tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] 10930tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] 10931[gw4] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.RequestParams--] 10932[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ModelHint--] 10933tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] 10934[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.AudioContent--] 10935tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] 10936[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.EmbeddedResource--] 10937tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] 10938tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] 10939[gw7] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tasks1--] 10940[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequestParams--] 10941tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] 10942[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskRequest--] 10943tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] 10944tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] 10945tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] 10946[gw4] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceContents--] 10947tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] 10948[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequestParams--] 10949tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] 10950[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskPayloadRequest--] 10951tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] 10952[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotificationParams--] 10953tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] 10954[gw0] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequestParams--] 10955tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] 10956[gw4] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceListChangedNotification--] 10957[gw8] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskRequest--] 10958tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] 10959[gw7] [ 93%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tools1--] 10960tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] 10961[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestFormParams--] 10962[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplateReference--] 10963[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ImageContent--] 10964tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] 10965tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] 10966tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] 10967[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotificationParams--] 10968tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] 10969[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequestParams--] 10970tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] 10971tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] 10972[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsResult--] 10973[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceRequest--] 10974tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] 10975tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] 10976[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.LoggingMessageNotification--] 10977[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ReadResourceResult--] 10978[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequestURLParams--] 10979tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] 10980tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] 10981[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ServerCapabilities--] 10982[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequestParams--] 10983tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] 10984[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Resource--] 10985tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] 10986tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] 10987[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PingRequest--] 10988tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] 10989tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] 10990[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceLink--] 10991tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] 10992[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceTemplate--] 10993[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeResult--] 10994tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] 10995tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] 10996[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializedNotification--] 10997tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] 10998[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCErrorResponse--] 10999tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] 11000[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCRequest--] 11001tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] 11002[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ResourceUpdatedNotification--] 11003[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequestParams--] 11004tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] 11005tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] 11006[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.JSONRPCResultResponse--] 11007[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolExecution--] 11008tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] 11009[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListRootsRequest--] 11010[gw8] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Data--] 11011tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] 11012tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] 11013[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateTaskResult--] 11014tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] 11015tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] 11016[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptRequest--] 11017tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] 11018[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotificationParams--] 11019tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] 11020tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] 11021[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolListChangedNotification--] 11022[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetTaskResult--] 11023tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] 11024[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Prompt--] 11025tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] 11026[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.InitializeRequest--] 11027[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequestParams--] 11028[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SetLevelRequest--] 11029tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] 11030tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] 11031tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] 11032[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SubscribeRequest--] 11033tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] 11034tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] 11035[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsRequest--] 11036[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Task--] 11037tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] 11038[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskMetadata--] 11039[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolUseContent--] 11040[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListPromptsResult--] 11041tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] 11042tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] 11043[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextResourceContents--] 11044[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksResult--] 11045tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] 11046tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] 11047tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] 11048tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] 11049[gw7] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesRequest--] 11050[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsRequest--] 11051tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] 11052tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] 11053[gw9] [ 94%] PASSED tests/test_examples.py::test_docs_examples[docs/advanced/low-level-server.md:137-139] 11054[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListToolsResult--] 11055[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequestParams--] 11056tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] 11057[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PaginatedRequest--] 11058tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] 11059tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] 11060[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotificationParams--] 11061[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ProgressNotification--] 11062tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] 11063tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] 11064tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-06-18] 11065[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Annotations--] 11066[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BaseMetadata--] 11067tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] 11068tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] 11069[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Argument--] 11070tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] 11071[gw0] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Context--] 11072tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] 11073[gw4] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TextContent--] 11074[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.PromptMessage--] 11075tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] 11076[gw6] [ 94%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.TaskStatusNotification--] 11077tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] 11078[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ToolResultContent--] 11079tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] 11080[gw9] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-06-18] 11081tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-11-25] 11082[gw9] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[prompts/list-2025-11-25] 11083tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2024-11-05] 11084[gw9] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2024-11-05] 11085tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-03-26] 11086[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolResult--] 11087[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Completion--] 11088tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] 11089[gw9] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-03-26] 11090tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-06-18] 11091[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.UnsubscribeRequest--] 11092[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourceTemplatesResult--] 11093[gw9] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-06-18] 11094tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-11-25] 11095tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] 11096[gw9] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/list-2025-11-25] 11097[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestFormParams--] 11098tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2024-11-05] 11099tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] 11100tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] 11101tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] 11102[gw9] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2024-11-05] 11103[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequestURLParams--] 11104[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ElicitRequest--] 11105tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-03-26] 11106tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] 11107tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] 11108[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitResult--] 11109tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] 11110[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCNotification--] 11111tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] 11112[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Error--] 11113[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelHint--] 11114tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] 11115[gw9] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-03-26] 11116tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] 11117[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Icon--] 11118[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ModelPreferences--] 11119tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] 11120tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-06-18] 11121[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Notification--] 11122tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] 11123[gw8] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CallToolRequest--] 11124tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] 11125[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Implementation--] 11126tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] 11127[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptArgument--] 11128tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] 11129[gw9] [ 95%] PASSED tests/types/test_methods.py::test_serialize_server_result_drops_2026_only_keys_at_pre_2026_versions[resources/read-2025-06-18] 11130[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompts--] 11131tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] 11132tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] 11133[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextResourceContents--] 11134[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resources--] 11135tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] 11136tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] 11137tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] 11138[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolAnnotations--] 11139[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tools--] 11140tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] 11141tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] 11142[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesRequest--] 11143tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] 11144[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolChoice--] 11145[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionFilter--] 11146tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] 11147tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] 11148[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListResourcesResult--] 11149[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data1--] 11150tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] 11151tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] 11152tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] 11153[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolUseContent--] 11154[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Annotations--] 11155tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] 11156tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] 11157[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.AudioContent--] 11158[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CacheableResult--] 11159tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] 11160[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.ListTasksRequest--] 11161[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteResult--] 11162tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] 11163tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] 11164tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] 11165[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.BlobResourceContents--] 11166[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.EmbeddedResource--] 11167tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] 11168[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.NotificationParams--] 11169[gw4] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.Tool--] 11170tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] 11171[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCErrorResponse--] 11172tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] 11173[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptReference--] 11174[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ImageContent--] 11175[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedResult--] 11176tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] 11177tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] 11178tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] 11179tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] 11180[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptListChangedNotification--] 11181[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotificationParams--] 11182tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] 11183[gw7] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCRequest--] 11184tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] 11185[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceResult--] 11186tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] 11187[gw0] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Prompt--] 11188tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] 11189[gw6] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Resource--] 11190[gw9] [ 95%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Request--] 11191tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] 11192[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceListChangedNotification--] 11193tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] 11194tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] 11195tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] 11196[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplate--] 11197[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceLink--] 11198tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] 11199tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] 11200[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotificationParams--] 11201[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ServerCapabilities--] 11202tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] 11203tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] 11204[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotificationParams--] 11205[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Result--] 11206tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] 11207tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] 11208[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenResult--] 11209[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Tool--] 11210tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] 11211tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] 11212[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.GetPromptResult--] 11213[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolListChangedNotification--] 11214tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] 11215[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.TextContent--] 11216tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] 11217tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] 11218[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotificationParams--] 11219[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceContents--] 11220[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Sampling--] 11221[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageResult--] 11222tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] 11223tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] 11224tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] 11225[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ClientCapabilities--] 11226tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] 11227tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] 11228[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceTemplateReference--] 11229[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverResult--] 11230tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] 11231tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] 11232[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Elicitation--] 11233[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.SamplingMessage--] 11234[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Root--] 11235[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesResult--] 11236tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] 11237tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] 11238tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] 11239tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] 11240[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesResult--] 11241[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotificationParams--] 11242tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] 11243[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequestParams--] 11244[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ElicitRequest--] 11245[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.Data--] 11246tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] 11247tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] 11248tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] 11249[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsResult--] 11250tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] 11251[gw0] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.JSONRPCResultResponse--] 11252tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] 11253[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ProgressNotification--] 11254tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] 11255[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CreateMessageRequest--] 11256[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PromptMessage--] 11257tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] 11258[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsAcknowledgedNotification--] 11259tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] 11260[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.RequestParams--] 11261tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] 11262[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequestParams--] 11263tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] 11264tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] 11265[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolResult--] 11266[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ResourceUpdatedNotification--] 11267[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ToolResultContent--] 11268tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] 11269tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] 11270tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] 11271[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequestParams--] 11272[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptResult--] 11273[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelTaskResult--] 11274[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CancelledNotification--] 11275tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] 11276tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] 11277tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] 11278[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequestParams--] 11279[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.DiscoverRequest--] 11280tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] 11281tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] 11282tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] 11283tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] 11284[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CompleteRequest--] 11285[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SubscriptionsListenRequest--] 11286tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] 11287[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.LoggingMessageNotification--] 11288tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] 11289[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourcesRequest--] 11290[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageResult--] 11291tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] 11292tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] 11293tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] 11294[gw7] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsRequest--] 11295[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.PaginatedRequest--] 11296[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListToolsRequest--] 11297tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] 11298[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsRequest--] 11299[gw8] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CancelledNotification--] 11300[gw4] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.SamplingMessage--] 11301tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] 11302tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] 11303tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] 11304tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] 11305[gw9] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListResourceTemplatesRequest--] 11306[gw6] [ 96%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequestParams--] 11307[gw4] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequestParams--] 11308tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] 11309tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] 11310tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] 11311tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] 11312[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ReadResourceRequest--] 11313[gw4] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CallToolRequest--] 11314tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] 11315[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequestParams--] 11316tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] 11317[gw4] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputRequiredResult--] 11318tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] 11319tests/types/test_parity.py::test_every_surface_class_is_accounted_for 11320[gw9] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequest--] 11321[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListRootsResult--] 11322[gw6] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.GetPromptRequestParams--] 11323[gw4] [ 97%] PASSED tests/types/test_parity.py::test_every_surface_class_is_accounted_for 11324tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types 11325tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] 11326[gw7] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.InputResponseRequestParams--] 11327tests/types/test_request_name_param.py::test_request_base_declares_no_name_param 11328[gw9] [ 97%] PASSED tests/types/test_parity.py::test_every_public_monolith_model_is_exported_from_mcp_types 11329tests/types/test_request_name_param.py::test_core_request_types_inherit_none 11330[gw6] [ 97%] PASSED tests/types/test_request_name_param.py::test_request_base_declares_no_name_param 11331tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field 11332tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment 11333[gw4] [ 97%] PASSED tests/types/test_request_name_param.py::test_core_request_types_inherit_none 11334tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] 11335[gw9] [ 97%] PASSED tests/types/test_request_name_param.py::test_subclass_overrides_by_bare_assignment 11336[gw7] [ 97%] PASSED tests/types/test_request_name_param.py::test_name_param_is_not_a_pydantic_field 11337[gw6] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-11-25-True] 11338tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] 11339tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] 11340tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] 11341tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] 11342[gw4] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2024-11-05-True] 11343[gw7] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-11-25-2025-06-18-True] 11344[gw6] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2025-11-25-False] 11345[gw9] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2025-06-18-2024-11-05-True] 11346tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] 11347tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] 11348tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] 11349[gw6] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[2025-11-26] 11350[gw4] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_ordering[2024-11-05-2025-03-26-False] 11351[gw9] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[] 11352[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2025_11_25.CompleteRequest--] 11353tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] 11354tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] 11355tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises 11356[gw9] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2024-11-05] 11357[gw6] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_minimum_raises 11358[gw4] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[draft] 11359tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] 11360tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] 11361tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] 11362tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] 11363[gw4] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-03-26] 11364[gw6] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-11-25] 11365[gw9] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2025-06-18] 11366tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] 11367tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] 11368[gw9] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-06-18] 11369[gw6] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-03-26] 11370tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] 11371tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] 11372[gw6] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2026-07-28] 11373[gw9] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2024-11-05] 11374[gw8] [ 97%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.CreateMessageRequest--] 11375tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] 11376tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] 11377[gw9] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-06-18] 11378[gw6] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-03-26] 11379tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] 11380tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] 11381tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] 11382[gw9] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2026-07-28] 11383[gw6] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-06-18-2025-11-25] 11384tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] 11385tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] 11386tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] 11387[gw6] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-03-26] 11388[gw9] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2024-11-05] 11389tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] 11390tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] 11391[gw6] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2026-07-28] 11392[gw9] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-06-18] 11393[gw8] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2024-11-05-2026-07-28] 11394tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] 11395tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] 11396tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] 11397[gw6] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-03-26] 11398[gw9] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2024-11-05] 11399[gw7] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[zzz] 11400[gw8] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-11-25-2025-11-25] 11401tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] 11402tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] 11403tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] 11404[gw9] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-11-25] 11405[gw6] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2025-06-18] 11406[gw8] [ 97%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2026-07-28-2026-07-28] 11407tests/types/test_version.py::test_known_versions_are_strictly_ordered 11408tests/types/test_version.py::test_supported_versions_are_known 11409[gw9] [ 97%] PASSED tests/types/test_version.py::test_known_versions_are_strictly_ordered 11410[gw6] [ 97%] PASSED tests/types/test_version.py::test_supported_versions_are_known 11411tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params 11412tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body 11413[gw9] [ 97%] PASSED tests/types/test_wire_frames.py::test_notification_frame_has_no_id_and_carries_the_dumped_params 11414tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve 11415tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives 11416[gw8] [ 97%] PASSED tests/types/test_wire_frames.py::test_request_frame_carries_the_envelope_and_the_dumped_request_body 11417[gw9] [ 97%] PASSED tests/types/test_wire_frames.py::test_cacheable_list_result_dump_carries_default_caching_directives 11418tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope 11419tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object 11420[gw9] [ 97%] PASSED tests/types/test_wire_frames.py::test_error_frame_wraps_error_data_in_the_jsonrpc_envelope 11421[gw6] [ 97%] PASSED tests/types/test_wire_frames.py::test_non_empty_result_dump_carries_result_type_complete_before_the_sieve 11422[gw8] [ 98%] PASSED tests/types/test_wire_frames.py::test_empty_result_frame_dumps_an_empty_result_object 11423tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests 11424[gw6] [ 98%] PASSED tests/types/test_wire_frames.py::test_input_required_result_frame_carries_the_tag_and_the_embedded_requests 11425tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] 11426[gw7] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_unknown_version_is_false[9999-99-99] 11427tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] 11428tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] 11429[gw0] [ 98%] PASSED tests/types/test_parity.py::test_monolith_is_superset_of_surface_fields[_v2026_07_28.ListPromptsResult--] 11430[gw4] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2024-11-05] 11431tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] 11432[gw4] [ 98%] PASSED tests/types/test_version.py::test_is_version_at_least_matches_lexicographic_for_known_versions[2025-03-26-2025-11-25] 11433[gw2] [ 98%] PASSED tests/types/test_methods.py::test_input_required_unions_discriminate_identically_in_both_arm_orders 11434tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing 11435[gw2] [ 98%] PASSED tests/types/test_methods.py::test_sampling_union_keeps_the_complete_arm_first_because_order_is_load_bearing 11436tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings 11437[gw2] [ 98%] PASSED tests/types/test_methods.py::test_validate_functions_accept_reject_and_gate_like_their_parse_siblings 11438tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] 11439[gw2] [ 98%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2024-11-05] 11440tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] 11441[gw2] [ 98%] PASSED tests/types/test_methods.py::test_dumped_monolith_results_round_trip_through_serialize_server_result[completion/complete-2025-03-26] 11442[gw5] [ 98%] PASSED tests/docs/test_translations.py::test_stage_keeps_showing_the_generated_code_block_after_its_english_changes_until_the_page_is_retranslated 11443tests/docs/test_translations.py::test_notice_links_climb_from_the_staged_page_to_the_english_page_and_this_sites_translations_page 11444[gw5] [ 98%] PASSED tests/docs/test_translations.py::test_notice_links_climb_from_the_staged_page_to_the_english_page_and_this_sites_translations_page 11445tests/docs/test_translations.py::test_stage_that_stops_part_way_leaves_no_titles_file_from_an_earlier_run 11446[gw5] [ 98%] PASSED tests/docs/test_translations.py::test_stage_that_stops_part_way_leaves_no_titles_file_from_an_earlier_run 11447tests/docs/test_translations.py::test_stage_without_lang_stages_every_language_in_the_registry 11448[gw5] [ 98%] PASSED tests/docs/test_translations.py::test_stage_without_lang_stages_every_language_in_the_registry 11449tests/docs_src/test_apps.py::test_the_tool_carries_the_ui_resource_reference 11450[gw5] [ 98%] PASSED tests/docs_src/test_apps.py::test_the_tool_carries_the_ui_resource_reference 11451tests/docs_src/test_apps.py::test_the_ui_resource_is_served_as_the_app_mime_type 11452[gw5] [ 98%] PASSED tests/docs_src/test_apps.py::test_the_ui_resource_is_served_as_the_app_mime_type 11453tests/docs_src/test_apps.py::test_one_tool_two_answers 11454[gw5] [ 98%] PASSED tests/docs_src/test_apps.py::test_one_tool_two_answers 11455tests/docs_src/test_apps.py::test_capability_advertised_under_server_extensions 11456[gw5] [ 98%] PASSED tests/docs_src/test_apps.py::test_capability_advertised_under_server_extensions 11457tests/docs_src/test_apps.py::test_csp_permissions_domain_and_border_ride_the_resource_meta 11458[gw5] [ 98%] PASSED tests/docs_src/test_apps.py::test_csp_permissions_domain_and_border_ride_the_resource_meta 11459tests/docs_src/test_apps.py::test_an_app_only_tool_is_still_listed_and_callable 11460[gw5] [ 98%] PASSED tests/docs_src/test_apps.py::test_an_app_only_tool_is_still_listed_and_callable 11461tests/docs_src/test_apps.py::test_a_file_resource_is_served_with_the_app_mime_type_filled_in 11462[gw5] [ 98%] PASSED tests/docs_src/test_apps.py::test_a_file_resource_is_served_with_the_app_mime_type_filled_in 11463tests/docs_src/test_asgi.py::test_the_server_behind_the_app_is_unchanged 11464[gw5] [ 98%] PASSED tests/docs_src/test_asgi.py::test_the_server_behind_the_app_is_unchanged 11465tests/server/test_connection.py::test_send_request_skips_the_surface_gate_when_method_absent_at_version 11466[gw5] [ 98%] PASSED tests/server/test_connection.py::test_send_request_skips_the_surface_gate_when_method_absent_at_version 11467tests/server/test_connection.py::test_send_request_with_a_custom_method_skips_the_surface_gate 11468[gw5] [ 98%] PASSED tests/server/test_connection.py::test_send_request_with_a_custom_method_skips_the_surface_gate 11469tests/server/test_connection.py::test_connection_ping_sends_ping_on_standalone 11470[gw5] [ 98%] PASSED tests/server/test_connection.py::test_connection_ping_sends_ping_on_standalone 11471tests/server/test_connection.py::test_connection_log_sends_logging_message_notification 11472[gw5] [ 98%] PASSED tests/server/test_connection.py::test_connection_log_sends_logging_message_notification 11473tests/server/test_connection.py::test_connection_log_sends_nothing_on_a_modern_connection 11474[gw5] [ 98%] PASSED tests/server/test_connection.py::test_connection_log_sends_nothing_on_a_modern_connection 11475tests/server/test_connection.py::test_connection_log_with_meta_includes_meta_in_params 11476[gw5] [ 98%] PASSED tests/server/test_connection.py::test_connection_log_with_meta_includes_meta_in_params 11477tests/server/test_connection.py::test_connection_list_changed_notifications_send_correct_methods 11478[gw5] [ 98%] PASSED tests/server/test_connection.py::test_connection_list_changed_notifications_send_correct_methods 11479tests/server/test_connection.py::test_connection_send_tool_list_changed_with_meta_includes_meta_only_params 11480[gw5] [ 98%] PASSED tests/server/test_connection.py::test_connection_send_tool_list_changed_with_meta_includes_meta_only_params 11481tests/server/test_connection.py::test_connection_check_capability_false_when_no_capabilities_recorded 11482[gw5] [ 98%] PASSED tests/server/test_connection.py::test_connection_check_capability_false_when_no_capabilities_recorded 11483tests/server/test_connection.py::test_from_envelope_records_capabilities_without_client_info 11484[gw5] [ 98%] PASSED tests/server/test_connection.py::test_from_envelope_records_capabilities_without_client_info 11485tests/server/test_connection.py::test_client_params_assignment_keeps_capabilities_in_lockstep 11486[gw5] [ 98%] PASSED tests/server/test_connection.py::test_client_params_assignment_keeps_capabilities_in_lockstep 11487tests/server/test_connection.py::test_check_capability_per_field_branches[have0-want0-False] 11488[gw5] [ 98%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have0-want0-False] 11489tests/server/test_connection.py::test_check_capability_per_field_branches[have1-want1-False] 11490[gw5] [ 98%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have1-want1-False] 11491tests/server/test_connection.py::test_check_capability_per_field_branches[have2-want2-False] 11492[gw5] [ 98%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have2-want2-False] 11493tests/server/test_connection.py::test_check_capability_per_field_branches[have3-want3-False] 11494[gw5] [ 98%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have3-want3-False] 11495tests/server/test_connection.py::test_check_capability_per_field_branches[have4-want4-False] 11496[gw5] [ 98%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have4-want4-False] 11497tests/server/test_connection.py::test_check_capability_per_field_branches[have5-want5-True] 11498[gw5] [ 98%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have5-want5-True] 11499tests/server/test_connection.py::test_check_capability_per_field_branches[have6-want6-True] 11500[gw5] [ 98%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have6-want6-True] 11501tests/server/test_connection.py::test_check_capability_per_field_branches[have7-want7-False] 11502[gw5] [ 98%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have7-want7-False] 11503tests/server/test_connection.py::test_check_capability_per_field_branches[have8-want8-False] 11504[gw5] [ 98%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have8-want8-False] 11505tests/server/test_connection.py::test_check_capability_per_field_branches[have9-want9-False] 11506[gw5] [ 98%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have9-want9-False] 11507tests/server/test_connection.py::test_check_capability_per_field_branches[have10-want10-True] 11508[gw5] [ 98%] PASSED tests/server/test_connection.py::test_check_capability_per_field_branches[have10-want10-True] 11509tests/server/test_connection.py::test_connection_check_capability_true_when_client_declares_it 11510[gw5] [ 98%] PASSED tests/server/test_connection.py::test_connection_check_capability_true_when_client_declares_it 11511tests/server/test_extensions_capability.py::test_get_capabilities_omits_extensions_when_none_registered 11512[gw5] [ 98%] PASSED tests/server/test_extensions_capability.py::test_get_capabilities_omits_extensions_when_none_registered 11513tests/server/test_extensions_capability.py::test_get_capabilities_advertises_populated_self_extensions 11514[gw5] [ 98%] PASSED tests/server/test_extensions_capability.py::test_get_capabilities_advertises_populated_self_extensions 11515tests/server/test_extensions_capability.py::test_modern_connection_carries_the_advertised_extensions_map 11516[gw5] [ 98%] PASSED tests/server/test_extensions_capability.py::test_modern_connection_carries_the_advertised_extensions_map 11517tests/server/test_extensions_capability.py::test_legacy_handshake_drops_the_extensions_map 11518[gw5] [ 98%] PASSED tests/server/test_extensions_capability.py::test_legacy_handshake_drops_the_extensions_map 11519tests/server/test_extensions_capability.py::test_server_accepts_capability_for_client_advertised_extension 11520[gw5] [ 98%] PASSED tests/server/test_extensions_capability.py::test_server_accepts_capability_for_client_advertised_extension 11521tests/server/test_extensions_capability.py::test_server_rejects_capability_for_undeclared_extension 11522[gw5] [ 98%] PASSED tests/server/test_extensions_capability.py::test_server_rejects_capability_for_undeclared_extension 11523tests/server/test_extensions_capability.py::test_server_rejects_capability_when_client_advertises_no_extensions 11524[gw5] [ 98%] PASSED tests/server/test_extensions_capability.py::test_server_rejects_capability_when_client_advertises_no_extensions 11525tests/server/test_fastmcp.py::test_importing_fastmcp_raises_module_not_found_that_points_at_the_migration_guide 11526[gw5] [ 98%] PASSED tests/server/test_fastmcp.py::test_importing_fastmcp_raises_module_not_found_that_points_at_the_migration_guide 11527tests/server/test_fastmcp.py::test_importing_a_fastmcp_submodule_raises_the_parent_pointer 11528[gw5] [ 98%] PASSED tests/server/test_fastmcp.py::test_importing_a_fastmcp_submodule_raises_the_parent_pointer 11529tests/server/test_fastmcp.py::test_v1_first_import_shim_falls_back_to_mcpserver 11530[gw5] [ 98%] PASSED tests/server/test_fastmcp.py::test_v1_first_import_shim_falls_back_to_mcpserver 11531tests/server/test_lifespan.py::test_lowlevel_server_lifespan 11532[gw5] [ 98%] PASSED tests/server/test_lifespan.py::test_lowlevel_server_lifespan 11533tests/server/test_lifespan.py::test_mcpserver_server_lifespan 11534[gw5] [ 98%] PASSED tests/server/test_lifespan.py::test_mcpserver_server_lifespan 11535tests/server/test_lowlevel_exception_handling.py::test_server_run_exits_cleanly_when_transport_yields_exception_then_closes 11536[gw5] [ 99%] PASSED tests/server/test_lowlevel_exception_handling.py::test_server_run_exits_cleanly_when_transport_yields_exception_then_closes 11537tests/server/test_lowlevel_tool_annotations.py::test_lowlevel_server_tool_annotations 11538[gw5] [ 99%] PASSED tests/server/test_lowlevel_tool_annotations.py::test_lowlevel_server_tool_annotations 11539tests/server/test_otel.py::test_server_ships_opentelemetry_middleware_by_default 11540[gw5] [ 99%] PASSED tests/server/test_otel.py::test_server_ships_opentelemetry_middleware_by_default 11541tests/server/test_otel.py::test_emits_server_span_with_method_and_target 11542[gw5] [ 99%] PASSED tests/server/test_otel.py::test_emits_server_span_with_method_and_target 11543tests/server/test_otel.py::test_tool_error_dict_result_sets_error_type 11544[gw5] [ 99%] PASSED tests/server/test_otel.py::test_tool_error_dict_result_sets_error_type 11545tests/server/test_otel.py::test_tool_error_model_result_sets_error_type 11546[gw5] [ 99%] PASSED tests/server/test_otel.py::test_tool_error_model_result_sets_error_type 11547tests/server/test_otel.py::test_snake_case_dict_result_is_not_a_tool_error 11548[gw5] [ 99%] PASSED tests/server/test_otel.py::test_snake_case_dict_result_is_not_a_tool_error 11549tests/server/test_otel.py::test_named_non_tool_prompt_method_omits_gen_ai_attrs 11550[gw5] [ 99%] PASSED tests/server/test_otel.py::test_named_non_tool_prompt_method_omits_gen_ai_attrs 11551tests/server/test_otel.py::test_prompt_get_sets_prompt_name 11552[gw5] [ 99%] PASSED tests/server/test_otel.py::test_prompt_get_sets_prompt_name 11553tests/server/test_otel.py::test_notification_span_omits_request_id 11554[gw5] [ 99%] PASSED tests/server/test_otel.py::test_notification_span_omits_request_id 11555tests/server/test_otel.py::test_nests_under_ambient_span_when_no_traceparent 11556[gw5] [ 99%] PASSED tests/server/test_otel.py::test_nests_under_ambient_span_when_no_traceparent 11557tests/server/test_otel.py::test_nests_under_ambient_span_when_meta_lacks_traceparent 11558[gw5] [ 99%] PASSED tests/server/test_otel.py::test_nests_under_ambient_span_when_meta_lacks_traceparent 11559tests/server/test_otel.py::test_extracts_trace_context_from_meta 11560[gw5] [ 99%] PASSED tests/server/test_otel.py::test_extracts_trace_context_from_meta 11561tests/server/test_otel.py::test_records_error_status_on_mcp_error 11562[gw5] [ 99%] PASSED tests/server/test_otel.py::test_records_error_status_on_mcp_error 11563tests/server/test_otel.py::test_validation_failure_sets_sanitized_status 11564[gw5] [ 99%] PASSED tests/server/test_otel.py::test_validation_failure_sets_sanitized_status 11565tests/server/test_otel.py::test_records_error_status_on_handler_exception 11566[gw5] [ 99%] PASSED tests/server/test_otel.py::test_records_error_status_on_handler_exception 11567[gw3] [ 99%] PASSED tests/test_types.py::test_bare_import_mcp_binds_the_types_submodule 11568tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_on_stdin_close_is_reaped_and_never_terminated 11569[gw3] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_on_stdin_close_is_reaped_and_never_terminated 11570tests/transports/stdio/test_lifecycle.py::test_cancelling_the_client_mid_session_terminates_the_whole_server_tree 11571[gw1] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_get_stream_reconnection 11572tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error 11573[gw1] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_mid_listen_is_not_an_error 11574tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error 11575[gw1] [ 99%] PASSED tests/shared/test_streamable_http.py::test_standalone_stream_teardown_between_dequeues_is_not_an_error 11576tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] 11577[gw1] [ 99%] PASSED tests/shared/test_tool_name_validation.py::test_validate_tool_name_accepts_valid_names[simple_alphanumeric] 11578tests/shared/test_uri_template.py::test_parse_explode_modifier 11579[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_explode_modifier 11580tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] 11581[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{.labels*}] 11582tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] 11583[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_explode_supported_operators[{;params*}] 11584tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain 11585[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_mixed_explode_and_plain 11586tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores 11587[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_varname_with_dots_and_underscores 11588tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression 11589[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unclosed_expression 11590tests/shared/test_uri_template.py::test_parse_rejects_empty_expression 11591[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_expression 11592tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable 11593[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_operator_without_variable 11594tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] 11595[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[-bad] 11596tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] 11597[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad-name] 11598tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] 11599[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad name] 11600tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] 11601[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[bad/name] 11602tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] 11603[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo..bar] 11604tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] 11605[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo.] 11606tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] 11607[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_invalid_varname[foo\n] 11608tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname 11609[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_accepts_dotted_varname 11610tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list 11611[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_empty_spec_in_list 11612tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier 11613[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_prefix_modifier 11614tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] 11615[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{var*}] 11616tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] 11617[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{+var*}] 11618tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] 11619[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{#var*}] 11620tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] 11621[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{?var*}] 11622tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] 11623[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_unsupported_explode[{&var*}] 11624tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] 11625[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{/a*}/x{/b*}] 11626tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] 11627[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a,b}] 11628tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] 11629[gw1] [ 99%] PASSED tests/shared/test_uri_template.py::test_parse_rejects_multiple_multi_segment_variables[{+a}/x/{+b}] 11630[gw3] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_cancelling_the_client_mid_session_terminates_the_whole_server_tree 11631tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_mid_session_keeps_its_own_exit_code 11632[gw3] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_a_server_that_exits_mid_session_keeps_its_own_exit_code 11633tests/transports/stdio/test_lifecycle.py::test_server_stderr_output_reaches_the_errlog_file 11634[gw3] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_server_stderr_output_reaches_the_errlog_file 11635tests/transports/stdio/test_lifecycle.py::test_fallback_process_reports_death_through_returncode_without_a_wait_call 11636[gw3] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_reports_death_through_returncode_without_a_wait_call 11637tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives 11638[gw3] [ 99%] PASSED tests/transports/stdio/test_lifecycle.py::test_fallback_process_wait_is_cancellable_while_the_child_lives 11639tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown 11640[gw3] [ 99%] PASSED tests/transports/stdio/test_posix.py::test_a_gracefully_exiting_servers_child_survives_the_client_shutdown 11641tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe 11642[gw3] [ 99%] PASSED tests/transports/stdio/test_posix.py::test_a_surviving_childs_write_to_the_inherited_stdout_fails_with_epipe 11643tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes 11644[gw3] [ 99%] SKIPPED tests/transports/stdio/test_windows.py::test_a_gracefully_exited_servers_child_is_reaped_when_the_job_handle_closes 11645tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] 11646[gw3] [ 99%] SKIPPED tests/transports/stdio/test_windows.py::test_a_selector_event_loop_session_uses_the_fallback_process_and_exits_cleanly[anyio_backend0] 11647tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages 11648[gw3] [100%] SKIPPED tests/transports/stdio/test_windows.py::test_a_native_server_emitting_crlf_line_endings_round_trips_messages 1164911650═══════════════════════════════ inline-snapshot ════════════════════════════════11651INFO: inline-snapshot was disabled because you used xdist. This means that tests11652with snapshots will continue to run, but snapshot(x) will only return x and 11653inline-snapshot will not be able to fix snapshots or generate reports.11654116551165611657================= 5782 passed, 9 skipped, 1 xfailed in 23.17s ==================11658Finished executing pytestCheckPhase