test: lift coverage 41% → 76% (+1068 tests across 36 files)

Service-level tests now exercise provider, permissions, project, journal,
messaging, work_session, metrics, kanban, extraction, learning, notification,
dashboard, llm_routing, a2a, task, repository_base, audit, db_seed,
branch_name, indexed_document, query_helpers, agent. API route tests cover
provider, journal, project, sessions, dashboard, work_session, tasks, a2a,
groups, notifications, agents, channels, messages, kanban, api_resources.
Pure-function helpers covered: handlers, deps_helpers, middleware,
middleware_docs, transcription, pr templates, agents_config, errors,
logging, journal/notification/channel/a2a access, task_lifecycle,
streaming, converters, crypto, schemas (common + websocket), events,
permissions extras.

pyproject ruff per-file-ignores extended for tests so PLR2004 (status code
magic values), PLC0415 (lazy imports), PLR0913 (fixture params), ARG001
(unused fixture deps), SIM105, and E501 don't fight test idioms.
This commit is contained in:
Renn F
2026-05-06 00:32:52 +02:00
parent b6903490f1
commit 64c48356d0
46 changed files with 2994 additions and 206 deletions
@@ -81,27 +81,21 @@ async def test_list_notifications_empty(notif_client: dict) -> None:
@pytest.mark.asyncio
async def test_get_notification_not_found(notif_client: dict) -> None:
client = notif_client["client"]
response = await client.get(
f"/api/notifications/{uuid4()}", headers=_HDR
)
response = await client.get(f"/api/notifications/{uuid4()}", headers=_HDR)
assert response.status_code in (404, 403)
@pytest.mark.asyncio
async def test_acknowledge_notification_not_found(notif_client: dict) -> None:
client = notif_client["client"]
response = await client.post(
f"/api/notifications/{uuid4()}/ack", headers=_HDR
)
response = await client.post(f"/api/notifications/{uuid4()}/ack", headers=_HDR)
assert response.status_code in (404, 403)
@pytest.mark.asyncio
async def test_mark_as_read_not_found(notif_client: dict) -> None:
client = notif_client["client"]
response = await client.post(
f"/api/notifications/{uuid4()}/read", headers=_HDR
)
response = await client.post(f"/api/notifications/{uuid4()}/read", headers=_HDR)
assert response.status_code in (404, 403)