Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Failing after 2m3s
CD Pipeline / build-and-deploy (push) Has been skipped
CD Pipeline / post-deploy-checks (push) Has been skipped
32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
import pytest
|
|
|
|
from src.api.v1 import drift as drift_api
|
|
|
|
|
|
class _BrokenDriftFingerprintStateService:
|
|
async def get_state(self, *, report_id=None, namespace=None):
|
|
raise RuntimeError("simulated drift readback failure")
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_drift_fingerprint_state_endpoint_fails_soft_on_readback_error(monkeypatch) -> None:
|
|
monkeypatch.setattr(
|
|
drift_api,
|
|
"get_drift_fingerprint_state_service",
|
|
lambda: _BrokenDriftFingerprintStateService(),
|
|
)
|
|
|
|
payload = await drift_api.get_drift_fingerprint_state(
|
|
report_id=None,
|
|
namespace="awoooi-prod",
|
|
)
|
|
|
|
assert payload["schema_version"] == "drift_fingerprint_state_v1"
|
|
assert payload["namespace"] == "awoooi-prod"
|
|
assert payload["readback_status"] == "degraded"
|
|
assert payload["readback_error"] == "internal_readback_error"
|
|
assert payload["operator_stage"] == "readback_degraded_ai_controlled_repair"
|
|
assert payload["writes_incident_state"] is False
|
|
assert payload["writes_auto_repair_result"] is False
|
|
assert payload["writes_drift_status"] is False
|