From 5842b093cc502b46076423e4f8efdbbc568f86aa Mon Sep 17 00:00:00 2001 From: Igor Soarez Date: Thu, 5 Nov 2026 19:21:43 +0200 Subject: pi: a failed run says so: a 'failed' alert with the error, and the error in red until seen --- tests/fake-model.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'tests/fake-model.py') diff --git a/tests/fake-model.py b/tests/fake-model.py index a02b98c..98a61db 100755 --- a/tests/fake-model.py +++ b/tests/fake-model.py @@ -1,7 +1,8 @@ #!/usr/bin/env python3 """A fake OpenAI-compatible model for tests/pi-live.sh: streams a short reply to /v1/chat/completions, after a delay taken from the last user message -("slow 3" waits 3 seconds). Prints its port, then serves until killed.""" +("slow 3" waits 3 seconds), or fails as a provider does ("fail 401": an +authentication error). Prints its port, then serves until killed.""" import json import re import sys @@ -34,6 +35,14 @@ class Handler(BaseHTTPRequestHandler): text = last_user_text(body) match = re.search(r"slow (\d+(?:\.\d+)?)", text) time.sleep(float(match.group(1)) if match else 0.2) + failure = re.search(r"fail (\d{3})", text) + if failure: + error = json.dumps({"type": "error", "error": {"type": "authentication_error", "message": "invalid x-api-key"}}) + self.send_response(int(failure.group(1))) + self.send_header("Content-Type", "application/json") + self.end_headers() + self.wfile.write(error.encode()) + return self.send_response(200) self.send_header("Content-Type", "text/event-stream") self.send_header("Cache-Control", "no-cache") -- cgit v1.2.3