fix(ci): read p0 sources in runtime layout
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 14s
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / build-and-deploy (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 14s
CD Pipeline / post-deploy-checks (push) Has been cancelled
CD Pipeline / build-and-deploy (push) Has been cancelled
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
from fastapi import FastAPI
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
@@ -32,6 +35,14 @@ from src.services.p0_cicd_baseline_source_readiness import (
|
||||
load_latest_p0_cicd_baseline_source_readiness,
|
||||
)
|
||||
|
||||
_REPO_ROOT = Path(__file__).resolve().parents[3]
|
||||
_SNAPSHOT_PATH = (
|
||||
_REPO_ROOT
|
||||
/ "docs"
|
||||
/ "operations"
|
||||
/ "p0-cicd-baseline-source-readiness.snapshot.json"
|
||||
)
|
||||
|
||||
|
||||
def test_p0_cicd_baseline_source_readiness_loader_reports_ready_sources():
|
||||
payload = load_latest_p0_cicd_baseline_source_readiness()
|
||||
@@ -53,6 +64,34 @@ def test_p0_cicd_baseline_source_readiness_loader_reports_ready_sources():
|
||||
assert payload["operation_boundaries"]["secret_read_allowed"] is False
|
||||
|
||||
|
||||
def test_p0_cicd_baseline_source_readiness_supports_runtime_image_layout(tmp_path):
|
||||
operations_dir = tmp_path / "docs" / "operations"
|
||||
operations_dir.mkdir(parents=True)
|
||||
payload = json.loads(_SNAPSHOT_PATH.read_text(encoding="utf-8"))
|
||||
(operations_dir / _SNAPSHOT_PATH.name).write_text(
|
||||
json.dumps(payload),
|
||||
encoding="utf-8",
|
||||
)
|
||||
|
||||
for source in payload["required_sources"]:
|
||||
relative_path = source["path"]
|
||||
if relative_path.startswith("apps/api/"):
|
||||
runtime_path = tmp_path / relative_path.removeprefix("apps/api/")
|
||||
runtime_path.parent.mkdir(parents=True, exist_ok=True)
|
||||
runtime_path.write_text("# runtime image source\n", encoding="utf-8")
|
||||
else:
|
||||
repo_path = tmp_path / relative_path
|
||||
repo_path.parent.mkdir(parents=True, exist_ok=True)
|
||||
repo_path.write_text("{}", encoding="utf-8")
|
||||
|
||||
data = load_latest_p0_cicd_baseline_source_readiness(operations_dir)
|
||||
|
||||
assert data["status"] == "ready_for_template_copy_apply_gate"
|
||||
assert data["rollups"]["present_required_source_count"] == 11
|
||||
assert data["rollups"]["missing_required_source_count"] == 0
|
||||
assert data["rollups"]["blocked_source_ids"] == []
|
||||
|
||||
|
||||
def test_recreated_onboarding_sources_keep_apply_gates_closed():
|
||||
response = {
|
||||
"accept_warning_only_scope": True,
|
||||
|
||||
Reference in New Issue
Block a user