From 548f991ced40e882177c39c84bc974964243d36b Mon Sep 17 00:00:00 2001 From: Derek Xu Date: Fri, 19 Sep 2025 12:02:05 -0700 Subject: [PATCH 1/3] Test commit 5c9194b - trigger CI --- test_commit_marker_5c9194b.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 test_commit_marker_5c9194b.txt diff --git a/test_commit_marker_5c9194b.txt b/test_commit_marker_5c9194b.txt new file mode 100644 index 00000000..bb058235 --- /dev/null +++ b/test_commit_marker_5c9194b.txt @@ -0,0 +1 @@ +# Testing commit 5c9194b From 071f5c45690005a91ef748611f18aaf291650d69 Mon Sep 17 00:00:00 2001 From: Derek Xu Date: Fri, 19 Sep 2025 12:24:13 -0700 Subject: [PATCH 2/3] try new port --- tests/pytest/test_mcp_session_autocreate.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/pytest/test_mcp_session_autocreate.py b/tests/pytest/test_mcp_session_autocreate.py index df816f55..edbff0ac 100644 --- a/tests/pytest/test_mcp_session_autocreate.py +++ b/tests/pytest/test_mcp_session_autocreate.py @@ -16,7 +16,7 @@ def _run_airline_server(): import os - os.environ["PORT"] = "9780" + os.environ["PORT"] = "9700" from eval_protocol.mcp_servers.tau2.tau2_mcp import AirlineDomainMcp server = AirlineDomainMcp(seed=None) @@ -29,7 +29,7 @@ async def test_tool_call_returns_json_without_prior_initial_state(): proc.start() try: - base_url = "http://127.0.0.1:9780/mcp" + base_url = "http://127.0.0.1:9700/mcp" client = httpx.Client(timeout=1.0) deadline = time.time() + 20 while time.time() < deadline: @@ -41,7 +41,7 @@ async def test_tool_call_returns_json_without_prior_initial_state(): pass time.sleep(0.2) else: - pytest.fail("Server did not start on port 9780 in time") + pytest.fail("Server did not start on port 9700 in time") session = MCPSession(base_url=base_url, session_id="test-autocreate", seed=None, model_id="test-model") From c0f87f4ee5e7afc1acbf470862af371c3fc06a73 Mon Sep 17 00:00:00 2001 From: Derek Xu Date: Fri, 19 Sep 2025 12:36:48 -0700 Subject: [PATCH 3/3] try new port --- tests/pytest/test_mcp_session_autocreate.py | 22 +++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/tests/pytest/test_mcp_session_autocreate.py b/tests/pytest/test_mcp_session_autocreate.py index edbff0ac..1c1ec42c 100644 --- a/tests/pytest/test_mcp_session_autocreate.py +++ b/tests/pytest/test_mcp_session_autocreate.py @@ -3,8 +3,9 @@ without requiring a prior initial state fetch, and returns JSON. """ +import socket import time -from multiprocessing import Process +from multiprocessing import Process, Queue import httpx import pytest @@ -13,10 +14,16 @@ from eval_protocol.types import MCPSession -def _run_airline_server(): +def _run_airline_server(port_queue): import os - os.environ["PORT"] = "9700" + # Use dynamic port allocation to avoid conflicts in parallel CI runs + with socket.socket() as s: + s.bind(("", 0)) + port = s.getsockname()[1] + + port_queue.put(port) # Send the port back to the test + os.environ["PORT"] = str(port) from eval_protocol.mcp_servers.tau2.tau2_mcp import AirlineDomainMcp server = AirlineDomainMcp(seed=None) @@ -25,11 +32,14 @@ def _run_airline_server(): @pytest.mark.asyncio async def test_tool_call_returns_json_without_prior_initial_state(): - proc = Process(target=_run_airline_server, daemon=True) + port_queue = Queue() + proc = Process(target=_run_airline_server, args=(port_queue,), daemon=True) proc.start() try: - base_url = "http://127.0.0.1:9700/mcp" + # Get the dynamically assigned port + port = port_queue.get(timeout=10) + base_url = f"http://127.0.0.1:{port}/mcp" client = httpx.Client(timeout=1.0) deadline = time.time() + 20 while time.time() < deadline: @@ -41,7 +51,7 @@ async def test_tool_call_returns_json_without_prior_initial_state(): pass time.sleep(0.2) else: - pytest.fail("Server did not start on port 9700 in time") + pytest.fail(f"Server did not start on port {port} in time") session = MCPSession(base_url=base_url, session_id="test-autocreate", seed=None, model_id="test-model")