"""Tests for quality-policy immutability and mature-scope measurement.""" from __future__ import annotations from copy import deepcopy from scripts import check_quality_policy as quality def _policy(): return { "minimums": dict(quality.BASELINE_FLOORS), "mature_cpu_scope": { "exclusions": [{ "path": "obliteratus/external.py", "boundary": "network-service", "rationale": "Requires a live external service.", "conditional_issue": "https://github.com/elder-plinius/OBLITERATUS/issues/71", "conditional_gate": "network-services", }], }, "threshold_exceptions": [], } def _coverage(): return { "files": { "obliteratus/pure.py": { "summary": { "num_statements": 100, "covered_lines": 80, "num_branches": 20, "covered_branches": 15, }, }, "obliteratus/external.py": { "summary": { "num_statements": 1000, "covered_lines": 0, "num_branches": 500, "covered_branches": 0, }, }, }, } def test_policy_and_exact_mature_floors_pass(): policy = _policy() assert quality.validate_policy(policy) == [] measurement, failures = quality.validate_mature_cpu_scope(_coverage(), policy) assert failures == [] assert measurement["line_percent"] == 80 assert measurement["branch_percent"] == 75 def test_floor_regression_requires_structured_reviewed_exception(): policy = _policy() policy["minimums"]["mutation_score"] = 69 assert quality.validate_policy(policy) == [ "quality minimum mutation_score cannot move below 70 without an explicit reviewed exception", ] policy["threshold_exceptions"] = [{ "threshold": "mutation_score", "new_value": 69, "reason": "Temporary tool regression", "approved_issue": "https://github.com/elder-plinius/OBLITERATUS/issues/999", "expires": "2026-09-01", }] assert quality.validate_policy(policy) == [] def test_exclusions_require_unique_traceable_environment_boundaries(): policy = _policy() duplicate = deepcopy(policy["mature_cpu_scope"]["exclusions"][0]) duplicate["rationale"] = "" policy["mature_cpu_scope"]["exclusions"].append(duplicate) failures = quality.validate_policy(policy) assert "mature CPU exclusion path is duplicated: obliteratus/external.py" in failures assert "mature CPU exclusion 1 requires non-empty rationale" in failures def test_mature_scope_rejects_regression_and_stale_exclusion(): policy = _policy() report = _coverage() report["files"]["obliteratus/pure.py"]["summary"]["covered_lines"] = 79 _, failures = quality.validate_mature_cpu_scope(report, policy) assert failures == [ "mature CPU line coverage 79.00% is below the 80.00% floor", ] del report["files"]["obliteratus/external.py"] _, failures = quality.measure_mature_cpu_scope(report, policy) assert failures == [ "coverage report is missing excluded source file obliteratus/external.py", ]