Load full artifact scan in dashboard

This commit is contained in:
2026-06-30 15:46:04 +08:00
parent 41cb0235cd
commit e766e4ed26
5 changed files with 61 additions and 20 deletions

View File

@@ -1,5 +1,9 @@
from pathlib import Path
from fastapi.testclient import TestClient
from app import main
from app.main import app
from app.modules.results.service import parse_training_curve
@@ -25,3 +29,31 @@ def test_parse_yolo_results_curve(tmp_path: Path):
assert "train/seg_loss" in names
assert "metrics/mAP50(M)" in names
assert all("lr/" not in name for name in names)
def test_results_api_honors_limit(monkeypatch):
calls = {}
def fake_scan_results(limit: int = 1000):
calls["limit"] = limit
return [{"name": "a.png", "relative_path": "var/a.png"}]
monkeypatch.setattr(main, "scan_results", fake_scan_results)
response = TestClient(app).get("/api/results?limit=123")
assert response.status_code == 200
assert calls["limit"] == 123
def test_results_curve_api_honors_limit(monkeypatch):
calls = {}
def fake_scan_training_curves(limit: int = 100):
calls["limit"] = limit
return [{"name": "results", "relative_path": "var/results.csv"}]
monkeypatch.setattr(main, "scan_training_curves", fake_scan_training_curves)
response = TestClient(app).get("/api/results/curves?limit=77")
assert response.status_code == 200
assert calls["limit"] == 77