1515
1616"""Integration test for HTTP server and MCP endpoint."""
1717
18- import time
1918import unittest
2019import requests
2120
2625
2726import pytest
2827
28+ from test_utils import wait_for_server
29+
2930
3031def generate_test_description ():
3132 """Launch the MCP server with lifecycle manager."""
@@ -73,12 +74,14 @@ class TestHTTPIntegration(unittest.TestCase):
7374
7475 BASE_URL = "http://127.0.0.1:18080"
7576
77+ @classmethod
78+ def setUpClass (cls ):
79+ """Wait for server to be ready."""
80+ wait_for_server (cls .BASE_URL )
81+
7682 def test_server_responds_to_valid_jsonrpc_request (self ):
7783 """Test server responds with valid JSON-RPC response."""
7884
79- # Give server time to start
80- time .sleep (1.0 )
81-
8285 # Send valid JSON-RPC request
8386 payload = {
8487 "jsonrpc" : "2.0" ,
@@ -113,9 +116,6 @@ def test_server_responds_to_valid_jsonrpc_request(self):
113116
114117 def test_server_rejects_invalid_json (self ):
115118 """Test server returns error for malformed JSON."""
116-
117- time .sleep (1.0 )
118-
119119 # Send invalid JSON
120120 response = requests .post (
121121 f"{ self .BASE_URL } /mcp" ,
@@ -133,9 +133,6 @@ def test_server_rejects_invalid_json(self):
133133
134134 def test_server_rejects_invalid_jsonrpc_structure (self ):
135135 """Test server returns error for invalid JSON-RPC structure."""
136-
137- time .sleep (1.0 )
138-
139136 # Send JSON missing required fields
140137 payload = {
141138 "method" : "test" ,
@@ -159,9 +156,6 @@ def test_server_rejects_invalid_jsonrpc_structure(self):
159156
160157 def test_server_handles_cors_preflight (self ):
161158 """Test server handles CORS preflight OPTIONS request."""
162-
163- time .sleep (1.0 )
164-
165159 # Send OPTIONS request
166160 response = requests .options (
167161 f"{ self .BASE_URL } /mcp" ,
@@ -181,9 +175,6 @@ def test_server_handles_cors_preflight(self):
181175
182176 def test_server_handles_multiple_requests (self ):
183177 """Test server can handle multiple concurrent requests."""
184-
185- time .sleep (1.0 )
186-
187178 # Send multiple requests with different IDs
188179 responses = []
189180 for i in range (5 ):
@@ -205,9 +196,6 @@ def test_server_handles_multiple_requests(self):
205196
206197 def test_server_responds_with_null_id (self ):
207198 """Test server handles requests with null id."""
208-
209- time .sleep (1.0 )
210-
211199 payload = {"jsonrpc" : "2.0" , "method" : "test" , "id" : None }
212200
213201 response = requests .post (
0 commit comments