mirror of
https://github.com/semantica-agi/semantica.git
synced 2026-08-29 04:26:20 +00:00
- Robust ID extraction in CentralityCalculator, CommunityDetector, and ConnectivityAnalyzer - Support for direct Entity objects and dictionaries as node identifiers - Improved Entity hashability in utils/types.py - Added integration test to verify fix and prevent regression
49 lines
1.6 KiB
Python
49 lines
1.6 KiB
Python
import unittest
|
|
import sys
|
|
import os
|
|
from unittest.mock import MagicMock, patch
|
|
|
|
# Add project root to path
|
|
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "../..")))
|
|
|
|
from semantica.kg import methods
|
|
|
|
class TestMethodsWrappers(unittest.TestCase):
|
|
|
|
@patch("semantica.kg.methods.GraphBuilder")
|
|
def test_build_kg(self, mock_builder_cls):
|
|
mock_builder = mock_builder_cls.return_value
|
|
mock_builder.build.return_value = {"entities": [], "relationships": []}
|
|
|
|
sources = []
|
|
result = methods.build_kg(sources)
|
|
|
|
mock_builder_cls.assert_called_once()
|
|
mock_builder.build.assert_called_once_with(sources)
|
|
self.assertIn("entities", result)
|
|
|
|
@patch("semantica.kg.methods.GraphAnalyzer")
|
|
def test_analyze_graph(self, mock_analyzer_cls):
|
|
mock_analyzer = mock_analyzer_cls.return_value
|
|
mock_analyzer.analyze_graph.return_value = {"metrics": {}}
|
|
|
|
graph = {"entities": [], "relationships": []}
|
|
result = methods.analyze_graph(graph)
|
|
|
|
mock_analyzer_cls.assert_called_once()
|
|
mock_analyzer.analyze_graph.assert_called_once_with(graph)
|
|
|
|
@patch("semantica.kg.methods.EntityResolver")
|
|
def test_resolve_entities(self, mock_resolver_cls):
|
|
mock_resolver = mock_resolver_cls.return_value
|
|
mock_resolver.resolve_entities.return_value = []
|
|
|
|
entities = []
|
|
result = methods.resolve_entities(entities)
|
|
|
|
mock_resolver_cls.assert_called_once()
|
|
mock_resolver.resolve_entities.assert_called_once_with(entities)
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|