fix(km): expose degraded readback reason
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 2m25s
CD Pipeline / build-and-deploy (push) Successful in 5m0s
AWOOOI Harbor 110 Local Repair / workflow-shape (push) Successful in 1s
AWOOOI Harbor 110 Local Repair / harbor-110-local-repair (push) Failing after 1m48s
CD Pipeline / post-deploy-checks (push) Has been cancelled
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 2m25s
CD Pipeline / build-and-deploy (push) Successful in 5m0s
AWOOOI Harbor 110 Local Repair / workflow-shape (push) Successful in 1s
AWOOOI Harbor 110 Local Repair / harbor-110-local-repair (push) Failing after 1m48s
CD Pipeline / post-deploy-checks (push) Has been cancelled
This commit is contained in:
@@ -60,6 +60,8 @@ async def test_knowledge_list_entries_fails_soft_when_readback_breaks(monkeypatc
|
||||
]
|
||||
assert all(row.count >= 1 for row in response.asset_taxonomy)
|
||||
assert response.readback_status == "source_backed_degraded"
|
||||
assert response.primary_readback_ready is False
|
||||
assert response.degraded_reason_code == "primary_km_db_timeout_or_pool_exhausted"
|
||||
assert response.operator_stage == "knowledge_readback_source_backed_ai_controlled_repair"
|
||||
assert response.next_step == "repair_primary_km_db_readback_then_promote_source_backed_receipts_to_persistent_km"
|
||||
assert response.writes_on_read is False
|
||||
@@ -83,6 +85,26 @@ async def test_knowledge_list_entries_source_backed_filter_and_search(monkeypatc
|
||||
assert response.asset_taxonomy[[row.key for row in response.asset_taxonomy].index("alert")].count == 1
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_knowledge_search_fails_soft_to_source_backed_entries(monkeypatch) -> None:
|
||||
monkeypatch.setattr(
|
||||
knowledge_service_module,
|
||||
"get_db_context",
|
||||
lambda: _BrokenDbContext(),
|
||||
)
|
||||
service = KnowledgeService.__new__(KnowledgeService)
|
||||
|
||||
entries = await service.search("Telegram", limit=10)
|
||||
|
||||
entry_ids = {entry.id for entry in entries}
|
||||
assert all(entry.id.startswith("source-backed-") for entry in entries)
|
||||
assert {
|
||||
"source-backed-service-telegram-alert-receipts",
|
||||
"source-backed-alert-telegram-monitoring-coverage",
|
||||
"source-backed-schedule-report-monitoring",
|
||||
}.issubset(entry_ids)
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_knowledge_categories_fails_soft_when_readback_breaks(monkeypatch) -> None:
|
||||
monkeypatch.setattr(
|
||||
|
||||
Reference in New Issue
Block a user