Skip to content

Commit 8d9700d

Browse files
Make tests/test_webserver.py more robust
1 parent 959aa01 commit 8d9700d

1 file changed

Lines changed: 9 additions & 4 deletions

File tree

tests/test_webserver.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,11 @@ def start_task_manager():
5151
if not started:
5252
self.fail("WebServer failed to start")
5353

54-
startup_wait = 1.0
54+
startup_wait = 3.0
5555
startup_wait_start = time.time()
5656
while (time.time() - startup_wait_start) < startup_wait:
57+
if WebServer.is_started():
58+
break
5759
time.sleep(0.05)
5860

5961
response_state = {"data": None, "error": None, "done": False}
@@ -63,7 +65,7 @@ async def download_task():
6365
last_error = None
6466
url_attempts = ["http://localhost:7890/", "http://127.0.0.1:7890/"]
6567
for url in url_attempts:
66-
for _ in range(15):
68+
for _ in range(20):
6769
try:
6870
response_bytes = await DownloadManager.download_url(url)
6971
break
@@ -74,7 +76,9 @@ async def download_task():
7476
break
7577

7678
if response_bytes is None:
77-
response_state["error"] = last_error
79+
response_state["error"] = last_error or RuntimeError(
80+
"WebServer did not respond before timeout"
81+
)
7882
else:
7983
response_state["data"] = response_bytes
8084
response_state["done"] = True
@@ -87,7 +91,8 @@ async def download_task():
8791
time.sleep(0.1)
8892

8993
if response_state["data"] is None:
90-
raise response_state["error"]
94+
error = response_state["error"]
95+
self.fail(f"WebServer response unavailable: {error}")
9196

9297
response_text = response_state["data"].decode("utf-8", "replace")
9398
self.assertIn("<title>MicroPythonOS WebREPL</title>", response_text)

0 commit comments

Comments
 (0)