File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 77from types import TracebackType
88from typing import Any
99
10- import anyio
11-
1210from mcp .client ._transport import TransportStreams
1311from mcp .server import Server
1412from mcp .server .mcpserver import MCPServer
Original file line number Diff line number Diff line change 1414import anyio
1515from 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
Original file line number Diff line number Diff line change 1212from pydantic import BaseModel , TypeAdapter
1313from 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
1818from mcp .shared ._exception_utils import collapse_exception_group
Original file line number Diff line number Diff line change 55import anyio
66import 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
1111from 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 )
You can’t perform that action at this time.
0 commit comments