darkplex-core/tests/test_governance_report.py
Claudia c5e5ce9dc0
Some checks failed
Tests / test (push) Failing after 5s
fix: all imports updated to cortex.xxx namespace — 405 tests green
- Fixed bare 'from governance.' imports in source + tests
- Fixed bare 'from intelligence.' imports in tests
- Fixed mock.patch targets to use full cortex.xxx paths
- All 405 tests passing
2026-02-12 08:47:45 +01:00

57 lines
2.4 KiB
Python

"""Tests for governance/report_generator.py."""
import json
import sys
from pathlib import Path
sys.path.insert(0, str(Path.home() / "repos" / "darkplex-core"))
from cortex.governance.evidence import EvidenceCollector, ControlMapping
from cortex.governance.report_generator import ReportGenerator
class TestReportGenerator:
def _collector_with_mapping(self, tmp_path):
import yaml
mapping_file = tmp_path / "mapping.yaml"
mapping_file.write_text(yaml.dump({
"mappings": [
{"event_types": ["policy_evaluation"], "controls": ["A.5.1", "A.8.1"]},
]
}))
return EvidenceCollector(control_mapping=ControlMapping(str(mapping_file)))
def test_empty_report(self):
collector = EvidenceCollector(control_mapping=ControlMapping("/dev/null"))
gen = ReportGenerator(collector)
report = gen.generate_compliance_report()
assert report["status"] == "no_evidence"
def test_report_with_evidence(self, tmp_path):
collector = self._collector_with_mapping(tmp_path)
collector.record(event_type="policy_evaluation", agent="claudia", action="read", verdict="allow", risk_score=2, risk_level="low")
collector.record(event_type="policy_evaluation", agent="claudia", action="write", verdict="deny", risk_score=8, risk_level="high")
gen = ReportGenerator(collector)
report = gen.generate_compliance_report()
assert report["total_evidence"] == 2
assert "A.5.1" in report["controls_covered"]
assert report["summary"]["total_deny"] == 1
assert report["summary"]["high_risk_events"] == 1
def test_agent_report(self, tmp_path):
collector = self._collector_with_mapping(tmp_path)
collector.record(event_type="policy_evaluation", agent="claudia", action="read", verdict="allow")
collector.record(event_type="policy_evaluation", agent="other", action="read", verdict="deny")
gen = ReportGenerator(collector)
report = gen.generate_agent_report("claudia")
assert report["agent"] == "claudia"
assert report["total_actions"] == 1
def test_export_json(self):
collector = EvidenceCollector(control_mapping=ControlMapping("/dev/null"))
gen = ReportGenerator(collector)
output = gen.export_json()
data = json.loads(output)
assert "status" in data # empty report