test: cover chat core and session storage

This commit is contained in:
2026-07-30 17:00:45 +02:00
parent ec9b2f94ad
commit b153daa989
5 changed files with 250 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
import tempfile
import unittest
from pathlib import Path
from javis.core.chat_service import ChatService
from javis.interface.cli import run_chat
from javis.memory.sqlite_store import SQLiteSessionStore
from javis.providers.base import ChatMessage
class _FakeProvider:
name = "ollama"
model = "test-model"
def chat(self, messages: list[ChatMessage]) -> str:
return f"Echo: {messages[-1].content}"
class CliTests(unittest.TestCase):
def test_basic_chat_commands(self) -> None:
with tempfile.TemporaryDirectory() as directory:
store = SQLiteSessionStore(Path(directory) / "sessions.sqlite3")
service = ChatService(store, _FakeProvider())
inputs = iter(["Hallo", "/sessions", "/new", "/clear", "/exit"])
output: list[str] = []
result = run_chat(
service,
input_fn=lambda _prompt: next(inputs),
output=output.append,
)
self.assertEqual(result, 0)
self.assertTrue(any(line == "Javis: Echo: Hallo" for line in output))
self.assertTrue(any("Nachrichten" in line for line in output))
self.assertEqual(output[-1], "Chat beendet.")
if __name__ == "__main__":
unittest.main()