fix: all imports updated to cortex.xxx namespace — 405 tests green
Some checks failed
Tests / test (push) Failing after 5s

- 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
This commit is contained in:
Claudia 2026-02-12 08:47:45 +01:00
parent fd7d75c0ed
commit c5e5ce9dc0
12 changed files with 41 additions and 41 deletions

View file

@ -45,20 +45,20 @@ def _build_context(args: argparse.Namespace) -> dict:
def _get_engine():
from governance.policy import PolicyEngine
from cortex.governance.policy import PolicyEngine
return PolicyEngine(policies_dir=DEFAULT_POLICIES_DIR)
def _get_scorer():
from governance.risk_scorer import RiskScorer
from cortex.governance.risk_scorer import RiskScorer
return RiskScorer()
def _get_enforcer():
from governance.enforcer import Enforcer
from governance.policy import PolicyEngine
from governance.risk_scorer import RiskScorer
from governance.evidence import EvidenceCollector, ControlMapping
from cortex.governance.enforcer import Enforcer
from cortex.governance.policy import PolicyEngine
from cortex.governance.risk_scorer import RiskScorer
from cortex.governance.evidence import EvidenceCollector, ControlMapping
return Enforcer(
policy_engine=PolicyEngine(policies_dir=DEFAULT_POLICIES_DIR),
@ -150,8 +150,8 @@ def cmd_status(args: argparse.Namespace) -> None:
def cmd_report(args: argparse.Namespace) -> None:
"""Generate compliance report (placeholder — needs live evidence)."""
from governance.evidence import EvidenceCollector, ControlMapping
from governance.report_generator import ReportGenerator
from cortex.governance.evidence import EvidenceCollector, ControlMapping
from cortex.governance.report_generator import ReportGenerator
collector = EvidenceCollector(
control_mapping=ControlMapping(DEFAULT_CONTROLS_MAPPING)

View file

@ -10,9 +10,9 @@ import logging
from dataclasses import dataclass
from typing import Any
from governance.evidence import EvidenceCollector
from governance.policy import PolicyEngine
from governance.risk_scorer import RiskResult, RiskScorer
from cortex.governance.evidence import EvidenceCollector
from cortex.governance.policy import PolicyEngine
from cortex.governance.risk_scorer import RiskResult, RiskScorer
logger = logging.getLogger(__name__)

View file

@ -13,7 +13,7 @@ from dataclasses import dataclass
from datetime import datetime, timezone
from typing import Any
from governance.evidence import EvidenceCollector, EvidenceRecord
from cortex.governance.evidence import EvidenceCollector, EvidenceRecord
logger = logging.getLogger(__name__)

View file

@ -8,10 +8,10 @@ import pytest
sys.path.insert(0, str(Path.home() / "repos" / "darkplex-core"))
from governance.enforcer import Enforcer, Decision
from governance.policy import PolicyEngine
from governance.risk_scorer import RiskScorer
from governance.evidence import EvidenceCollector, ControlMapping
from cortex.governance.enforcer import Enforcer, Decision
from cortex.governance.policy import PolicyEngine
from cortex.governance.risk_scorer import RiskScorer
from cortex.governance.evidence import EvidenceCollector, ControlMapping
def _make_enforcer(tmp_path, rules=None):

View file

@ -9,7 +9,7 @@ import pytest
sys.path.insert(0, str(Path.home() / "repos" / "darkplex-core"))
from governance.evidence import EvidenceCollector, EvidenceRecord, ControlMapping
from cortex.governance.evidence import EvidenceCollector, EvidenceRecord, ControlMapping
class TestControlMapping:

View file

@ -6,8 +6,8 @@ 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
from cortex.governance.evidence import EvidenceCollector, ControlMapping
from cortex.governance.report_generator import ReportGenerator
class TestReportGenerator:

View file

@ -5,7 +5,7 @@ from pathlib import Path
sys.path.insert(0, str(Path.home() / "repos" / "darkplex-core"))
from governance.risk_scorer import RiskScorer, RiskResult, _classify_level
from cortex.governance.risk_scorer import RiskScorer, RiskResult, _classify_level
class TestClassifyLevel:

View file

@ -9,7 +9,7 @@ from unittest.mock import patch, MagicMock
sys.path.insert(0, str(Path.home() / "repos" / "darkplex-core" / "intelligence"))
import knowledge_cleanup as kc
import cortex.intelligence.knowledge_cleanup as kc
class TestBackup:
@ -107,28 +107,28 @@ class TestScoreRelationships:
class TestClassifyUnknowns:
@patch("knowledge_cleanup.ollama_generate")
@patch("cortex.intelligence.knowledge_cleanup.ollama_generate")
def test_no_unknowns(self, mock_ollama):
entities = {"albert": {"type": "person"}}
result = kc.classify_unknowns(entities, dry_run=False)
mock_ollama.assert_not_called()
assert result == entities
@patch("knowledge_cleanup.ollama_generate")
@patch("cortex.intelligence.knowledge_cleanup.ollama_generate")
def test_classifies_unknowns(self, mock_ollama):
mock_ollama.return_value = '{"1": "person"}'
entities = {"albert": {"type": "unknown"}}
result = kc.classify_unknowns(entities, dry_run=False)
assert result["albert"]["type"] == "person"
@patch("knowledge_cleanup.ollama_generate")
@patch("cortex.intelligence.knowledge_cleanup.ollama_generate")
def test_dry_run_no_change(self, mock_ollama):
mock_ollama.return_value = '{"1": "person"}'
entities = {"albert": {"type": "unknown"}}
result = kc.classify_unknowns(entities, dry_run=True)
assert result["albert"]["type"] == "unknown"
@patch("knowledge_cleanup.ollama_generate")
@patch("cortex.intelligence.knowledge_cleanup.ollama_generate")
def test_handles_llm_failure(self, mock_ollama):
mock_ollama.side_effect = Exception("timeout")
entities = {"albert": {"type": "unknown"}}

View file

@ -6,7 +6,7 @@ from unittest.mock import patch
sys.path.insert(0, str(Path.home() / "repos" / "darkplex-core"))
from knowledge_extractor import importance_heuristic, parse_since
from cortex.knowledge_extractor import importance_heuristic, parse_since
class TestImportanceHeuristic:

View file

@ -7,7 +7,7 @@ from unittest.mock import patch, MagicMock
sys.path.insert(0, str(Path.home() / "repos" / "darkplex-core" / "intelligence"))
from llm_extractor import (
from cortex.intelligence.llm_extractor import (
_parse_json_response,
_normalize_entities,
extract_entities_llm,
@ -83,26 +83,26 @@ class TestNormalizeEntities:
class TestExtractEntitiesLlm:
@patch("llm_extractor._call_ollama")
@patch("cortex.intelligence.llm_extractor._call_ollama")
def test_empty_text(self, mock_ollama):
assert extract_entities_llm("") == {}
assert extract_entities_llm("short") == {}
mock_ollama.assert_not_called()
@patch("llm_extractor._call_ollama")
@patch("cortex.intelligence.llm_extractor._call_ollama")
def test_ollama_unavailable(self, mock_ollama):
mock_ollama.return_value = None
result = extract_entities_llm("This is a test about Albert and Mondo Gate AG")
assert result is None # signals fallback
@patch("llm_extractor._call_ollama")
@patch("cortex.intelligence.llm_extractor._call_ollama")
def test_successful_extraction(self, mock_ollama):
mock_ollama.return_value = '{"albert": {"type": "person", "context": "mentioned"}}'
result = extract_entities_llm("Albert discussed the project with the team members today")
assert "albert" in result
assert result["albert"]["type"] == "person"
@patch("llm_extractor._call_ollama")
@patch("cortex.intelligence.llm_extractor._call_ollama")
def test_truncates_long_text(self, mock_ollama):
mock_ollama.return_value = "{}"
extract_entities_llm("x" * 3000)
@ -112,19 +112,19 @@ class TestExtractEntitiesLlm:
class TestExtractEntitiesLlmBatch:
@patch("llm_extractor._call_ollama")
@patch("cortex.intelligence.llm_extractor._call_ollama")
def test_empty_list(self, mock_ollama):
assert extract_entities_llm_batch([]) == {}
mock_ollama.assert_not_called()
@patch("llm_extractor._call_ollama")
@patch("cortex.intelligence.llm_extractor._call_ollama")
def test_filters_short_texts(self, mock_ollama):
mock_ollama.return_value = "{}"
result = extract_entities_llm_batch(["hi", "yo", ""])
assert result == {}
mock_ollama.assert_not_called()
@patch("llm_extractor._call_ollama")
@patch("cortex.intelligence.llm_extractor._call_ollama")
def test_batch_extraction(self, mock_ollama):
mock_ollama.return_value = '{"python": {"type": "technology", "context": "language"}}'
result = extract_entities_llm_batch(["Python is a great programming language for data science"])
@ -132,7 +132,7 @@ class TestExtractEntitiesLlmBatch:
class TestIsAvailable:
@patch("llm_extractor.urllib.request.urlopen")
@patch("cortex.intelligence.llm_extractor.urllib.request.urlopen")
def test_available(self, mock_urlopen):
mock_resp = MagicMock()
mock_resp.status = 200
@ -141,7 +141,7 @@ class TestIsAvailable:
mock_urlopen.return_value = mock_resp
assert is_available() is True
@patch("llm_extractor.urllib.request.urlopen")
@patch("cortex.intelligence.llm_extractor.urllib.request.urlopen")
def test_unavailable(self, mock_urlopen):
mock_urlopen.side_effect = Exception("connection refused")
assert is_available() is False

View file

@ -9,7 +9,7 @@ from unittest.mock import patch, MagicMock
sys.path.insert(0, str(Path.home() / "repos" / "darkplex-core" / "intelligence"))
import loop as darkplex_loop
import cortex.intelligence.loop as darkplex_loop
class TestImportance:
@ -101,19 +101,19 @@ class TestLoopState:
class TestCheckNewEvents:
@patch("loop.subprocess.run")
@patch("cortex.intelligence.loop.subprocess.run")
def test_returns_pending(self, mock_run):
mock_run.return_value = MagicMock(
returncode=0, stdout=json.dumps({"num_pending": 42})
)
assert darkplex_loop.check_new_events() == 42
@patch("loop.subprocess.run")
@patch("cortex.intelligence.loop.subprocess.run")
def test_returns_negative_on_failure(self, mock_run):
mock_run.return_value = MagicMock(returncode=1, stdout="")
assert darkplex_loop.check_new_events() == -1
@patch("loop.subprocess.run")
@patch("cortex.intelligence.loop.subprocess.run")
def test_handles_exception(self, mock_run):
mock_run.side_effect = Exception("nats not found")
assert darkplex_loop.check_new_events() == -1

View file

@ -9,7 +9,7 @@ import pytest
sys.path.insert(0, str(Path.home() / "repos" / "darkplex-core" / "intelligence"))
from temporal import TemporalEntry, TemporalQuery, TemporalContext
from cortex.intelligence.temporal import TemporalEntry, TemporalQuery, TemporalContext
class TestTemporalEntry: