feat: clarify request lifecycle status
This commit is contained in:
+42
-1
@@ -1,5 +1,6 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import datetime as dt
|
||||
import importlib.util
|
||||
import json
|
||||
import os
|
||||
@@ -129,6 +130,45 @@ class CodexRetryGatewayTUITests(unittest.TestCase):
|
||||
}
|
||||
self.assertEqual(mod.request_usage_summary(row), "in 75 | out 40 | cached 25 (25%)")
|
||||
|
||||
def test_request_status_labels_follow_lifecycle_and_age(self) -> None:
|
||||
mod = load_module()
|
||||
now = dt.datetime(2026, 7, 10, 12, 0, tzinfo=dt.timezone.utc)
|
||||
waiting = {
|
||||
"lifecycle_state": "sent",
|
||||
"started_at": "2026-07-10T11:59:50Z",
|
||||
}
|
||||
streaming = {
|
||||
"lifecycle_state": "receive_first",
|
||||
"started_at": "2026-07-10T11:59:00Z",
|
||||
"first_response_at": "2026-07-10T11:59:55Z",
|
||||
"last_activity_at": "2026-07-10T11:59:55Z",
|
||||
}
|
||||
complete = {"lifecycle_state": "finish", "status_code": 200}
|
||||
discarded = {
|
||||
"lifecycle_state": "finish",
|
||||
"status_code": 502,
|
||||
"error": "client disconnected before reasoning retry completed",
|
||||
}
|
||||
slow_waiting = {
|
||||
"lifecycle_state": "sent",
|
||||
"started_at": "2026-07-10T11:59:30Z",
|
||||
}
|
||||
stalled = {
|
||||
"lifecycle_state": "streaming",
|
||||
"first_response_at": "2026-07-10T11:57:50Z",
|
||||
"last_activity_at": "2026-07-10T11:57:50Z",
|
||||
}
|
||||
|
||||
self.assertEqual(mod.request_status_label(waiting, now), "waiting")
|
||||
self.assertEqual(mod.request_status_label(streaming, now), "streaming")
|
||||
self.assertEqual(mod.request_status_label(complete, now), "HTTP 200")
|
||||
self.assertEqual(mod.request_status_label(discarded, now), "discarded")
|
||||
self.assertEqual(mod.request_status_label(slow_waiting, now), "waiting 30.0s")
|
||||
self.assertEqual(mod.request_status_label(stalled, now), "stalled 130s")
|
||||
self.assertNotEqual(mod.request_status_style(waiting, now), mod.request_status_style(streaming, now))
|
||||
self.assertEqual(mod.request_status_style(discarded, now), "bold #ff5f5f")
|
||||
self.assertEqual(mod.request_status_style(stalled, now), "bold #ff5f5f")
|
||||
|
||||
def test_request_row_cells_expand_with_wider_limits(self) -> None:
|
||||
mod = load_module()
|
||||
row = {
|
||||
@@ -316,7 +356,8 @@ class CodexRetryGatewayTUITests(unittest.TestCase):
|
||||
self.assertEqual(visible[1].plain, "req_1")
|
||||
self.assertEqual(visible[2].plain, "resp_1")
|
||||
self.assertEqual(visible[3].plain, "thread_same")
|
||||
self.assertEqual(visible[4], "· 200")
|
||||
self.assertIsInstance(visible[4], Text)
|
||||
self.assertEqual(visible[4].plain, "HTTP 200")
|
||||
self.assertEqual(mod.request_thread_color("thread_same"), mod.request_thread_color("thread_same"))
|
||||
self.assertIsNone(mod.request_thread_color(""))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user