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 31s
CD Pipeline / build-and-deploy (push) Has been skipped
CD Pipeline / post-deploy-checks (push) Has been skipped
AI 技術雷達監控 / ai-technology-watch (push) Successful in 41s
37 lines
1.6 KiB
Python
37 lines
1.6 KiB
Python
from __future__ import annotations
|
|
|
|
from fastapi import FastAPI
|
|
from fastapi.testclient import TestClient
|
|
|
|
from src.api.v1.agents import router
|
|
|
|
|
|
def test_backup_dr_readiness_matrix_endpoint_returns_committed_snapshot():
|
|
app = FastAPI()
|
|
app.include_router(router, prefix="/api/v1")
|
|
client = TestClient(app)
|
|
|
|
response = client.get("/api/v1/agents/backup-dr-readiness-matrix")
|
|
|
|
assert response.status_code == 200
|
|
data = response.json()
|
|
assert data["schema_version"] == "backup_dr_readiness_matrix_v1"
|
|
assert data["program_status"]["overall_completion_percent"] == 97
|
|
assert data["program_status"]["read_only_mode"] is True
|
|
assert data["program_status"]["next_task_id"] == "P1-201"
|
|
assert data["rollups"]["total_rows"] == len(data["readiness_rows"]) == 17
|
|
assert data["rollups"]["by_overall_readiness"]["blocked"] == 1
|
|
assert data["rollups"]["by_overall_readiness"]["action_required"] == 2
|
|
assert data["operation_boundaries"]["restore_execution_allowed"] is False
|
|
assert data["operation_boundaries"]["offsite_sync_execution_allowed"] is False
|
|
assert data["operation_boundaries"]["credential_marker_write_allowed"] is False
|
|
configs_capture = next(
|
|
row
|
|
for row in data["readiness_rows"]
|
|
if row["target_id"] == "configs_capture"
|
|
)
|
|
assert configs_capture["overall_readiness"] == "ready"
|
|
assert configs_capture["gate_status"] == "restore_approval_required"
|
|
assert any(row["target_id"] == "velero_k8s_resources" for row in data["readiness_rows"])
|
|
assert any(row["target_id"] == "credential_escrow_markers" for row in data["readiness_rows"])
|