52 lines
1.8 KiB
Python
52 lines
1.8 KiB
Python
import sys
|
|
import unittest
|
|
from pathlib import Path
|
|
from unittest.mock import patch
|
|
|
|
|
|
PROJECT_ROOT = Path(__file__).resolve().parents[1]
|
|
if str(PROJECT_ROOT) not in sys.path:
|
|
sys.path.insert(0, str(PROJECT_ROOT))
|
|
|
|
from journal.core.models import JournalEntry
|
|
from journal.ai import bridge
|
|
|
|
|
|
class AiHybridBridgeTests(unittest.TestCase):
|
|
def test_summarize_entry_uses_local_analysis_in_hybrid_mode(self):
|
|
entry = JournalEntry(date="2026-02-22", raw_content="sample content")
|
|
with (
|
|
patch("journal.ai.bridge.analysis.summarize_entry", return_value="local result") as mock_local,
|
|
):
|
|
result = bridge.summarize_entry(entry)
|
|
|
|
self.assertEqual(result, "local result")
|
|
mock_local.assert_called_once_with(entry)
|
|
|
|
def test_summarize_all_uses_local_analysis_in_hybrid_mode(self):
|
|
entries = [
|
|
JournalEntry(date="2026-02-21", raw_content="entry one"),
|
|
JournalEntry(date="2026-02-22", raw_content="entry two"),
|
|
]
|
|
with (
|
|
patch("journal.ai.bridge.analysis.summarize_all_entries", return_value="all local result") as mock_local,
|
|
):
|
|
result = bridge.summarize_all_entries(entries)
|
|
|
|
self.assertEqual(result, "all local result")
|
|
mock_local.assert_called_once()
|
|
|
|
def test_summarize_entry_uses_local_analysis_in_python_mode(self):
|
|
entry = JournalEntry(date="2026-02-22", raw_content="sample content")
|
|
with (
|
|
patch("journal.ai.bridge.analysis.summarize_entry", return_value="local result") as mock_local,
|
|
):
|
|
result = bridge.summarize_entry(entry)
|
|
|
|
self.assertEqual(result, "local result")
|
|
mock_local.assert_called_once_with(entry)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|