de02bdea06
- 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"
42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
"""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
|