Merge remote-tracking branch 'gitea-ssh/main' into codex/p0-product-manifest-standard-20260629
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 2m46s
CD Pipeline / build-and-deploy (push) Has been skipped
CD Pipeline / post-deploy-checks (push) Has been skipped
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 2m46s
CD Pipeline / build-and-deploy (push) Has been skipped
CD Pipeline / post-deploy-checks (push) Has been skipped
# Conflicts: # docs/LOGBOOK.md
This commit is contained in:
@@ -28,19 +28,16 @@ def test_delivery_closure_workbench_endpoint_returns_product_summary():
|
||||
assert data["summary"]["refs_sync_authorized"] is True
|
||||
assert data["summary"]["workflow_trigger_authorized"] is True
|
||||
assert data["summary"]["p0_cicd_baseline_status"] == (
|
||||
"blocked_required_sources_missing"
|
||||
"ready_for_template_copy_apply_gate"
|
||||
)
|
||||
assert data["summary"]["p0_cicd_baseline_workplan_id"] == "P0-004"
|
||||
assert data["summary"]["p0_cicd_baseline_source_readiness_percent"] == 27
|
||||
assert data["summary"]["p0_cicd_baseline_source_readiness_percent"] == 100
|
||||
assert data["summary"]["p0_cicd_baseline_required_source_count"] == 11
|
||||
assert data["summary"]["p0_cicd_baseline_present_required_source_count"] == 3
|
||||
assert data["summary"]["p0_cicd_baseline_missing_required_source_count"] == 8
|
||||
assert (
|
||||
"warning_step_template_copy_apply_gate_service"
|
||||
in data["summary"]["p0_cicd_baseline_blocked_source_ids"]
|
||||
)
|
||||
assert data["summary"]["p0_cicd_baseline_present_required_source_count"] == 11
|
||||
assert data["summary"]["p0_cicd_baseline_missing_required_source_count"] == 0
|
||||
assert data["summary"]["p0_cicd_baseline_blocked_source_ids"] == []
|
||||
assert data["summary"]["p0_cicd_baseline_safe_next_step"] == (
|
||||
"restore_or_recreate_tracked_warning_step_source_before_workflow_enablement"
|
||||
"open_template_copy_apply_gate_after_source_readiness_green"
|
||||
)
|
||||
assert data["summary"]["production_deploy_status"] == (
|
||||
"closure_verified"
|
||||
@@ -515,17 +512,14 @@ def test_delivery_closure_workbench_endpoint_returns_product_summary():
|
||||
)
|
||||
assert lanes["github"]["metric"]["kind"] == "private_backup_verified"
|
||||
assert lanes["cicd_baseline"]["metric"]["kind"] == "source_readiness"
|
||||
assert lanes["cicd_baseline"]["status"] == "blocked_required_sources_missing"
|
||||
assert lanes["cicd_baseline"]["blocker_count"] == 8
|
||||
assert lanes["cicd_baseline"]["completion_percent"] == 27
|
||||
assert lanes["cicd_baseline"]["status"] == "ready_for_template_copy_apply_gate"
|
||||
assert lanes["cicd_baseline"]["blocker_count"] == 0
|
||||
assert lanes["cicd_baseline"]["completion_percent"] == 100
|
||||
assert lanes["cicd_baseline"]["metric"]["workplan_id"] == "P0-004"
|
||||
assert lanes["cicd_baseline"]["metric"]["required_source_count"] == 11
|
||||
assert lanes["cicd_baseline"]["metric"]["present_required_source_count"] == 3
|
||||
assert lanes["cicd_baseline"]["metric"]["missing_required_source_count"] == 8
|
||||
assert (
|
||||
"warning_step_template_copy_apply_gate_service"
|
||||
in lanes["cicd_baseline"]["metric"]["blocked_source_ids"]
|
||||
)
|
||||
assert lanes["cicd_baseline"]["metric"]["present_required_source_count"] == 11
|
||||
assert lanes["cicd_baseline"]["metric"]["missing_required_source_count"] == 0
|
||||
assert lanes["cicd_baseline"]["metric"]["blocked_source_ids"] == []
|
||||
assert (
|
||||
lanes["cicd_baseline"]["metric"]["workflow_modification_allowed"]
|
||||
is False
|
||||
|
||||
@@ -4,27 +4,48 @@ from fastapi import FastAPI
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
from src.api.v1.agents import router
|
||||
from src.services.awoooi_gitea_onboarding_warning_step_dashboard import (
|
||||
load_latest_awoooi_gitea_onboarding_warning_step_dashboard,
|
||||
)
|
||||
from src.services.awoooi_gitea_onboarding_warning_step_owner_package import (
|
||||
load_latest_awoooi_gitea_onboarding_warning_step_owner_package,
|
||||
)
|
||||
from src.services.awoooi_gitea_onboarding_warning_step_owner_response_preflight import (
|
||||
load_latest_awoooi_gitea_onboarding_warning_step_owner_response_preflight,
|
||||
)
|
||||
from src.services.awoooi_gitea_onboarding_warning_step_template_copy_apply_gate import (
|
||||
load_latest_awoooi_gitea_onboarding_warning_step_template_copy_apply_gate,
|
||||
)
|
||||
from src.services.awoooi_gitea_onboarding_warning_step_template_copy_execution_plan import (
|
||||
load_latest_awoooi_gitea_onboarding_warning_step_template_copy_execution_plan,
|
||||
)
|
||||
from src.services.awoooi_new_product_onboarding_page_model import (
|
||||
load_latest_awoooi_new_product_onboarding_page_model,
|
||||
)
|
||||
from src.services.awoooi_onboarding_reminder_contract import (
|
||||
load_latest_awoooi_onboarding_reminder_contract,
|
||||
)
|
||||
from src.services.awoooi_product_onboarding_guard import (
|
||||
load_latest_awoooi_product_onboarding_guard,
|
||||
)
|
||||
from src.services.p0_cicd_baseline_source_readiness import (
|
||||
load_latest_p0_cicd_baseline_source_readiness,
|
||||
)
|
||||
|
||||
|
||||
def test_p0_cicd_baseline_source_readiness_loader_reports_missing_sources():
|
||||
def test_p0_cicd_baseline_source_readiness_loader_reports_ready_sources():
|
||||
payload = load_latest_p0_cicd_baseline_source_readiness()
|
||||
|
||||
assert payload["schema_version"] == "p0_cicd_baseline_source_readiness_v1"
|
||||
assert payload["status"] == "blocked_required_sources_missing"
|
||||
assert payload["status"] == "ready_for_template_copy_apply_gate"
|
||||
assert payload["priority"] == "P0-004"
|
||||
assert payload["readback"]["workplan_id"] == "P0-004"
|
||||
assert payload["readback"]["scorecard_completion_percent"] == 40
|
||||
assert payload["readback"]["scorecard_completion_percent"] == 60
|
||||
assert payload["rollups"]["required_source_count"] == 11
|
||||
assert payload["rollups"]["present_required_source_count"] == 3
|
||||
assert payload["rollups"]["missing_required_source_count"] == 8
|
||||
assert payload["rollups"]["source_readiness_percent"] == 27
|
||||
assert (
|
||||
"warning_step_template_copy_apply_gate_service"
|
||||
in payload["rollups"]["blocked_source_ids"]
|
||||
)
|
||||
assert payload["rollups"]["present_required_source_count"] == 11
|
||||
assert payload["rollups"]["missing_required_source_count"] == 0
|
||||
assert payload["rollups"]["source_readiness_percent"] == 100
|
||||
assert payload["rollups"]["blocked_source_ids"] == []
|
||||
assert payload["operation_boundaries"]["read_only_api_allowed"] is True
|
||||
assert payload["operation_boundaries"]["workflow_modification_allowed"] is False
|
||||
assert payload["operation_boundaries"]["workflow_trigger_allowed"] is False
|
||||
@@ -32,6 +53,41 @@ def test_p0_cicd_baseline_source_readiness_loader_reports_missing_sources():
|
||||
assert payload["operation_boundaries"]["secret_read_allowed"] is False
|
||||
|
||||
|
||||
def test_recreated_onboarding_sources_keep_apply_gates_closed():
|
||||
response = {
|
||||
"accept_warning_only_scope": True,
|
||||
"confirm_no_push_or_pull_request_trigger": True,
|
||||
"confirm_no_generic_runner_label": True,
|
||||
"confirm_runner_pressure_guard_required": True,
|
||||
}
|
||||
payloads = [
|
||||
load_latest_awoooi_gitea_onboarding_warning_step_owner_package(),
|
||||
load_latest_awoooi_gitea_onboarding_warning_step_owner_response_preflight(
|
||||
response
|
||||
),
|
||||
load_latest_awoooi_gitea_onboarding_warning_step_template_copy_execution_plan(),
|
||||
load_latest_awoooi_gitea_onboarding_warning_step_template_copy_apply_gate(),
|
||||
load_latest_awoooi_gitea_onboarding_warning_step_dashboard(),
|
||||
load_latest_awoooi_product_onboarding_guard(),
|
||||
load_latest_awoooi_onboarding_reminder_contract(),
|
||||
load_latest_awoooi_new_product_onboarding_page_model(),
|
||||
]
|
||||
|
||||
assert (
|
||||
payloads[1]["readback"]["accepted_acknowledgement_count"]
|
||||
== payloads[1]["readback"]["required_acknowledgement_count"]
|
||||
)
|
||||
assert payloads[1]["readback"]["ready_for_template_copy_plan"] is True
|
||||
for payload in payloads:
|
||||
boundaries = payload["operation_boundaries"]
|
||||
assert boundaries["read_only_api_allowed"] is True
|
||||
assert boundaries["workflow_modification_allowed"] is False
|
||||
assert boundaries["workflow_trigger_allowed"] is False
|
||||
assert boundaries["github_api_allowed"] is False
|
||||
assert boundaries["host_or_k8s_write_allowed"] is False
|
||||
assert boundaries["secret_read_allowed"] is False
|
||||
|
||||
|
||||
def test_p0_cicd_baseline_source_readiness_endpoint_returns_snapshot():
|
||||
app = FastAPI()
|
||||
app.include_router(router, prefix="/api/v1")
|
||||
@@ -42,6 +98,6 @@ def test_p0_cicd_baseline_source_readiness_endpoint_returns_snapshot():
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
assert data["schema_version"] == "p0_cicd_baseline_source_readiness_v1"
|
||||
assert data["status"] == "blocked_required_sources_missing"
|
||||
assert data["rollups"]["missing_required_source_count"] == 8
|
||||
assert data["status"] == "ready_for_template_copy_apply_gate"
|
||||
assert data["rollups"]["missing_required_source_count"] == 0
|
||||
assert data["operation_boundaries"]["workflow_modification_allowed"] is False
|
||||
|
||||
Reference in New Issue
Block a user