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
80 lines
2.7 KiB
Python
80 lines
2.7 KiB
Python
"""Tests for governance/risk_scorer.py."""
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
sys.path.insert(0, str(Path.home() / "repos" / "darkplex-core"))
|
|
|
|
from governance.risk_scorer import RiskScorer, RiskResult, _classify_level
|
|
|
|
|
|
class TestClassifyLevel:
|
|
def test_low(self):
|
|
assert _classify_level(0) == "low"
|
|
assert _classify_level(3) == "low"
|
|
|
|
def test_elevated(self):
|
|
assert _classify_level(4) == "elevated"
|
|
assert _classify_level(6) == "elevated"
|
|
|
|
def test_high(self):
|
|
assert _classify_level(7) == "high"
|
|
assert _classify_level(8) == "high"
|
|
|
|
def test_critical(self):
|
|
assert _classify_level(9) == "critical"
|
|
assert _classify_level(10) == "critical"
|
|
|
|
|
|
class TestRiskResult:
|
|
def test_acceptable(self):
|
|
r = RiskResult(value=3, level="low", factors={})
|
|
assert r.is_acceptable
|
|
|
|
def test_not_acceptable(self):
|
|
r = RiskResult(value=7, level="high", factors={})
|
|
assert not r.is_acceptable
|
|
|
|
|
|
class TestRiskScorer:
|
|
def setup_method(self):
|
|
self.scorer = RiskScorer()
|
|
|
|
def test_default_low_risk(self):
|
|
result = self.scorer.score({"hour": 12})
|
|
assert result.level == "low"
|
|
assert result.is_acceptable
|
|
|
|
def test_public_internal(self):
|
|
result = self.scorer.score({"data_type": "public", "target": "internal", "hour": 12})
|
|
assert result.value <= 3
|
|
|
|
def test_confidential_external(self):
|
|
result = self.scorer.score({"data_type": "confidential", "target": "external", "hour": 12})
|
|
assert result.value >= 7
|
|
|
|
def test_restricted_critical(self):
|
|
result = self.scorer.score({"data_type": "restricted", "target": "external", "hour": 12})
|
|
assert result.level in ("high", "critical")
|
|
|
|
def test_off_hours_bonus(self):
|
|
day = self.scorer.score({"data_type": "internal", "hour": 12})
|
|
night = self.scorer.score({"data_type": "internal", "hour": 2})
|
|
assert night.value > day.value
|
|
|
|
def test_admin_role_reduces_risk(self):
|
|
admin = self.scorer.score({"agent_role": "admin", "hour": 12})
|
|
external = self.scorer.score({"agent_role": "external", "hour": 12})
|
|
assert admin.value < external.value
|
|
|
|
def test_factors_populated(self):
|
|
result = self.scorer.score({"data_type": "internal", "target": "external", "hour": 10})
|
|
assert "data_type" in result.factors
|
|
assert "target" in result.factors
|
|
assert "agent_role" in result.factors
|
|
assert "time_of_day" in result.factors
|
|
|
|
def test_clamped_0_10(self):
|
|
# Even with extreme values, should be 0-10
|
|
result = self.scorer.score({"data_type": "restricted", "target": "external", "agent_role": "external", "hour": 3})
|
|
assert 0 <= result.value <= 10
|