Count runs per flow, and page the run list by offset

This commit is contained in:
2026-08-25 11:34:07 +02:00
parent 60757fa7fa
commit 7e422c0047
5 changed files with 139 additions and 3 deletions
+35
View File
@@ -10,6 +10,7 @@ from datetime import UTC, datetime
import pytest
from sqlmodel import Session
from fluksio.core.config import settings
from fluksio.core.db import engine as db_engine
from fluksio.flow.artifacts import ArtifactStore
from fluksio.flow.messages import DType, MessageSpec
@@ -196,3 +197,37 @@ def test_a_reference_passed_whole_is_left_alone(made_artifact):
assert resolve_references(artifact_flow(), {"dataset": reference}) == {
"dataset": reference
}
def test_the_overview_counts_a_flow_the_list_page_would_not_reach(
client, superuser_token_headers
):
"""The list caps at 500 newest; the flow rail needs whole counts."""
with Session(db_engine) as session:
for index in range(3):
session.add(
Run(
id=f"ov-{index}",
flow="overviewed",
status="ok" if index else "running",
created_at=datetime(2026, 1, 1 + index, tzinfo=UTC),
)
)
session.commit()
rows = client.get(
f"{settings.API_V1_STR}/runs/overview", headers=superuser_token_headers
).json()
row = next(r for r in rows if r["flow"] == "overviewed")
assert (row["runs"], row["running"], row["queued"]) == (3, 1, 0)
def test_overview_is_not_read_as_a_run_id(client, superuser_token_headers):
"""`/overview` is declared before `/{run_id}`, which would swallow it."""
answer = client.get(
f"{settings.API_V1_STR}/runs/overview", headers=superuser_token_headers
)
assert answer.status_code == 200
assert isinstance(answer.json(), list)