"""Tests for language tools.""" 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