Count runs per flow, and page the run list by offset
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user