Spaces:
Sleeping
Sleeping
| """Structural + unit: nabory instrument-stats / dossier-stats expose plan_12m §13.""" | |
| from __future__ import annotations | |
| import inspect | |
| from types import SimpleNamespace | |
| from unittest.mock import MagicMock, patch | |
| import pytest | |
| from core.projects.instrument_ops import build_plan_12m_metrics_snapshot | |
| from endpoints import grants_nabory_enhanced as nabory_mod | |
| def _find_route(path_suffix: str): | |
| # nabory routes are registered via register function — import handlers if exported | |
| # Fall back to source inspection of module | |
| return None | |
| def test_nabory_module_wires_plan_12m_and_dossier(): | |
| src = inspect.getsource(nabory_mod) | |
| assert "build_plan_12m_metrics_snapshot" in src | |
| assert "compute_instrument_project_metrics" in src | |
| assert "compute_readiness_distribution" in src | |
| assert "dossier-stats" in src or "dossier_stats" in src | |
| assert "instrument-stats" in src or "instrument_stats" in src | |
| assert "plan_12m" in src | |
| def test_plan_12m_section_13_status_all_pass_when_seeded_catalog(): | |
| snap = build_plan_12m_metrics_snapshot( | |
| project_metrics={ | |
| "total_projects_scanned": 10, | |
| "pct_with_schema": 80.0, | |
| "pct_ready_to_generate": 50.0, | |
| "pct_structure_only": 10.0, | |
| "eligibility_strategy_coverage": { | |
| "with_eligibility_snapshot": 9, | |
| "with_strategy_path": 5, | |
| "with_de_minimis_source": 7, | |
| "with_msp_confidence_ge_0_7": 6, | |
| "projects_scanned_for_firm_metrics": 10, | |
| }, | |
| }, | |
| catalog_stats={ | |
| "dossier_readiness": { | |
| "sample_size": 10, | |
| "total": 10, | |
| "pct_not_blind": 70.0, | |
| "meets_dod_70_not_blind": True, | |
| } | |
| }, | |
| ) | |
| assert snap["section_13_status"]["3_gold_families_ge_12"] == "PASS" | |
| assert snap["section_13_status"]["5_dossier_not_blind_70"] == "PASS" | |
| assert snap["section_13_status"]["4_tax_paths"] == "PASS" | |
| assert snap["section_13_status"]["6_direct_eu"] == "PASS" | |
| assert snap["section_13_status"]["8_bk2021_surface"] == "PASS" | |
| assert snap["dod_product_pass"] is True | |
| assert snap["dod_all_pass"] is True | |
| assert snap["sla_claim_allowed"] is False | |
| assert snap["version"] >= 2 | |
| def test_plan_12m_section_13_5_blocker_when_empty_catalog(): | |
| snap = build_plan_12m_metrics_snapshot( | |
| catalog_stats={ | |
| "dossier_readiness": { | |
| "sample_size": 0, | |
| "total": 0, | |
| "pct_not_blind": None, | |
| "meets_dod_70_not_blind": False, | |
| } | |
| } | |
| ) | |
| assert snap["section_13_status"]["5_dossier_not_blind_70"] == "external-blocker" | |
| assert snap["dod_product_pass"] is False | |
| assert snap["dod_all_pass"] is True # blocker allowed for dod_all_pass | |