Skip to content

Commit 4a54b0b

Browse files
author
g97iulio1609
committed
fix: remove unused anyio import, add pragma:no-branch for 3.10 compat, add multi-failure test
1 parent b6cf9df commit 4a54b0b

4 files changed

Lines changed: 18 additions & 5 deletions

File tree

src/mcp/client/_memory.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
from types import TracebackType
88
from typing import Any
99

10-
import anyio
11-
1210
from mcp.client._transport import TransportStreams
1311
from mcp.server import Server
1412
from mcp.server.mcpserver import MCPServer

src/mcp/shared/_exception_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import anyio
1515
from anyio.abc import TaskGroup
1616

17-
if sys.version_info < (3, 11):
17+
if sys.version_info < (3, 11): # pragma: no branch
1818
from exceptiongroup import BaseExceptionGroup
1919

2020

src/mcp/shared/session.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from pydantic import BaseModel, TypeAdapter
1313
from typing_extensions import Self
1414

15-
if sys.version_info < (3, 11):
15+
if sys.version_info < (3, 11): # pragma: no branch
1616
from exceptiongroup import BaseExceptionGroup
1717

1818
from mcp.shared._exception_utils import collapse_exception_group

tests/shared/test_exception_utils.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import anyio
66
import pytest
77

8-
if sys.version_info < (3, 11):
8+
if sys.version_info < (3, 11): # pragma: no branch
99
from exceptiongroup import BaseExceptionGroup
1010

1111
from mcp.shared._exception_utils import collapse_exception_group, create_task_group
@@ -115,3 +115,18 @@ async def long_task() -> None:
115115
tg.start_soon(long_task)
116116

117117
assert isinstance(exc_info.value.__cause__, BaseExceptionGroup)
118+
119+
@pytest.mark.anyio
120+
async def test_multiple_failures_raises_group(self) -> None:
121+
"""Multiple real task failures should raise as a BaseExceptionGroup."""
122+
with pytest.raises(BaseExceptionGroup):
123+
async with create_task_group() as tg:
124+
125+
async def fail_a() -> None:
126+
raise RuntimeError("error A")
127+
128+
async def fail_b() -> None:
129+
raise ValueError("error B")
130+
131+
tg.start_soon(fail_a)
132+
tg.start_soon(fail_b)

0 commit comments

Comments
 (0)