feat: add queue level and status change labels in metrics for better readability

This commit is contained in:
2026-05-12 18:55:42 +08:00
parent e2409d4ebe
commit 330373b8f1
5 changed files with 155 additions and 19 deletions

View File

@@ -46,8 +46,11 @@ def build_client(project_root: Path):
"over_threshold_count": 6,
"under_threshold_count": 2,
"queue_level": "crowded",
"queue_level_label": "人多",
"previous_queue_level": "normal",
"previous_queue_level_label": "人数正常",
"status_change": "queue_increased",
"status_change_label": "人数变多",
},
"tracks": [
{"track_id": 1, "direction": "in"},
@@ -70,8 +73,11 @@ def build_client(project_root: Path):
"over_threshold_count": 2,
"under_threshold_count": 1,
"queue_level": "normal",
"queue_level_label": "人数正常",
"previous_queue_level": None,
"previous_queue_level_label": "",
"status_change": "initial",
"status_change_label": "初始",
},
"age_counts": {"minor": 0, "adult": 4, "senior": 1},
"gender_counts": {"male": 2, "female": 3},
@@ -145,9 +151,13 @@ def test_get_manage_summary(tmp_path: Path):
assert response.json["last_result_time"] == "2026-04-16T10:00:00+08:00"
assert response.json["metrics"]["total_people"] == 7
assert response.json["metrics"]["queue_level"] == "crowded"
assert response.json["metrics"]["queue_level_label"] == "人多"
assert response.json["metrics"]["previous_queue_level"] == "normal"
assert response.json["metrics"]["previous_queue_level_label"] == "人数正常"
assert response.json["metrics"]["over_threshold_count"] == 6
assert response.json["metrics"]["under_threshold_count"] == 2
assert response.json["metrics"]["status_change"] == "queue_increased"
assert response.json["metrics"]["status_change_label"] == "人数变多"
assert response.json["metrics"]["direction_counts"] == {"in": 2, "out": 1}
assert (
response.json["metrics"]["recent_window_stats"][0]["window_end"]
@@ -167,6 +177,11 @@ def test_get_manage_windows(tmp_path: Path):
assert response.json["items"][0]["window_end"] == "2026-04-16T10:00:00+08:00"
assert response.json["items"][0]["total_people"] == 7
assert response.json["items"][0]["queue_level"] == "crowded"
assert response.json["items"][0]["queue_level_label"] == "人多"
assert response.json["items"][0]["previous_queue_level"] == "normal"
assert response.json["items"][0]["previous_queue_level_label"] == "人数正常"
assert response.json["items"][0]["status_change"] == "queue_increased"
assert response.json["items"][0]["status_change_label"] == "人数变多"
def test_get_manage_files(tmp_path: Path):