feat: major architectural refactor

- Refactor memory system (episodic/STM/LTM with components)
- Implement complete subtitle domain (scanner, matcher, placer)
- Add YAML workflow infrastructure
- Externalize knowledge base (patterns, release groups)
- Add comprehensive testing suite
- Create manual testing CLIs
This commit is contained in:
2026-05-11 21:33:37 +02:00
parent 62b5d0b998
commit 249c5de76a
103 changed files with 8559 additions and 1346 deletions
+41
View File
@@ -0,0 +1,41 @@
"""Tests for language tools."""
import pytest
from alfred.agent.tools.language import set_language
class TestSetLanguage:
def test_success_returns_ok(self, memory):
result = set_language("fr")
assert result["status"] == "ok"
assert result["language"] == "fr"
def test_message_contains_language(self, memory):
result = set_language("en")
assert "en" in result["message"]
def test_persists_to_memory(self, memory):
set_language("es")
# Verify it's stored in STM
from alfred.infrastructure.persistence import get_memory
mem = get_memory()
assert mem.stm.language == "es"
def test_various_language_codes(self, memory):
for lang in ["en", "fr", "es", "de", "it", "pt"]:
result = set_language(lang)
assert result["status"] == "ok"
assert result["language"] == lang
def test_error_on_memory_failure(self, monkeypatch):
from alfred.agent.tools import language as lang_module
def broken_get_memory():
raise RuntimeError("memory unavailable")
monkeypatch.setattr(lang_module, "get_memory", broken_get_memory)
result = set_language("fr")
assert result["status"] == "error"
assert "error" in result