Some checks failed
Tests / test (push) Failing after 2s
- Merged all unique darkplex-core modules into cortex: - intelligence/ subfolder (anticipator, collective, shared_memory, knowledge_cleanup, temporal, llm_extractor, loop) - governance/ subfolder (policy engine, risk scorer, evidence, enforcer, report generator) - entity_manager.py, knowledge_extractor.py - Fixed bare 'from intelligence.' imports to 'from cortex.intelligence.' - Added 'darkplex' CLI alias alongside 'cortex' - Package renamed to darkplex-core v0.2.0 - 405 tests passing (was 234) - 14 new test files covering all merged modules
57 lines
2.4 KiB
Python
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 governance.evidence import EvidenceCollector, ControlMapping
|
|
from 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
|