Skip to content

Commit 126d1ed

Browse files
committed
refactor: inline server code in test_1363 to avoid external imports
1 parent bf7c583 commit 126d1ed

File tree

1 file changed

+26
-22
lines changed

1 file changed

+26
-22
lines changed

tests/issues/test_1363_race_condition_streamable_http.py

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,9 @@
1919
import subprocess
2020
import sys
2121
import time
22-
from collections.abc import AsyncGenerator
23-
from contextlib import asynccontextmanager
2422

2523
import httpx
2624
import pytest
27-
import uvicorn
28-
from starlette.applications import Starlette
29-
from starlette.routing import Mount
30-
from starlette.types import Receive, Scope, Send
31-
32-
from mcp.server import Server
33-
from mcp.server.streamable_http_manager import StreamableHTTPSessionManager
34-
from mcp.types import Tool
3525

3626
SERVER_NAME = "test_race_condition_server"
3727

@@ -85,16 +75,40 @@ def server_url(server_port: int) -> str:
8575
return f"http://127.0.0.1:{server_port}"
8676

8777

78+
def start_server_process(port: int) -> subprocess.Popen[str]:
79+
"""Start server in a separate process."""
80+
# Create a temporary script to run the server
81+
import os
82+
83+
server_code = f"""
84+
import sys
85+
import os
86+
sys.path.insert(0, {repr(os.getcwd())})
87+
88+
import socket
89+
import time
90+
from collections.abc import AsyncGenerator
91+
from contextlib import asynccontextmanager
92+
93+
import uvicorn
94+
from starlette.applications import Starlette
95+
from starlette.routing import Mount
96+
from starlette.types import Receive, Scope, Send
97+
98+
from mcp.server import Server
99+
from mcp.server.streamable_http_manager import StreamableHTTPSessionManager
100+
from mcp.types import Tool
101+
102+
SERVER_NAME = "test_race_condition_server"
103+
88104
class RaceConditionTestServer(Server):
89105
def __init__(self):
90106
super().__init__(SERVER_NAME)
91107
92108
async def on_list_tools(self) -> list[Tool]:
93109
return []
94110
95-
96111
def run_server_with_logging(port: int) -> None:
97-
"""Run the StreamableHTTP server with logging to capture race condition errors."""
98112
app = RaceConditionTestServer()
99113
100114
# Create session manager
@@ -121,16 +135,6 @@ async def lifespan(app: Starlette) -> AsyncGenerator[None, None]:
121135
starlette_app = Starlette(routes=routes, lifespan=lifespan)
122136
uvicorn.run(starlette_app, host="127.0.0.1", port=port, log_level="debug")
123137
124-
125-
def start_server_process(port: int) -> subprocess.Popen[str]:
126-
"""Start server in a separate process."""
127-
# Create a temporary script to run the server
128-
import os
129-
130-
server_code = f"""
131-
import sys
132-
sys.path.insert(0, {repr(os.getcwd())})
133-
from tests.issues.test_1363_race_condition_streamable_http import run_server_with_logging
134138
run_server_with_logging({port})
135139
"""
136140

0 commit comments

Comments
 (0)