"""Unit tests for src/my_deepagent/i18n/__init__.py.""" from __future__ import annotations import pytest from my_deepagent.i18n import _load, resolve_lang, t def test_t_welcome_default_ko() -> None: result = t("init.welcome") assert "my-deepagent" in result assert "환영합니다" in result def test_t_welcome_en() -> None: result = t("init.welcome", lang="en") assert "Welcome" in result def test_t_format_provider() -> None: result = t("login.saved", provider="openrouter") assert "openrouter" in result def test_t_missing_key_returns_key_itself() -> None: result = t("nonexistent.missing_key") assert result == "nonexistent.missing_key" def test_t_missing_section_returns_key_itself() -> None: result = t("no_such_section.key") assert result == "no_such_section.key" def test_resolve_lang_env_en(monkeypatch: pytest.MonkeyPatch) -> None: monkeypatch.setenv("MYDEEPAGENT_LANG", "en") assert resolve_lang() == "en" def test_resolve_lang_env_ko(monkeypatch: pytest.MonkeyPatch) -> None: monkeypatch.setenv("MYDEEPAGENT_LANG", "ko") assert resolve_lang() == "ko" def test_resolve_lang_default_ko(monkeypatch: pytest.MonkeyPatch) -> None: monkeypatch.delenv("MYDEEPAGENT_LANG", raising=False) assert resolve_lang() == "ko" def test_resolve_lang_invalid_env_falls_back_to_default(monkeypatch: pytest.MonkeyPatch) -> None: monkeypatch.setenv("MYDEEPAGENT_LANG", "fr") assert resolve_lang() == "ko" def test_load_cache_same_instance() -> None: _load.cache_clear() first = _load("ko") second = _load("ko") assert first is second def test_t_format_error_returns_template() -> None: # If fmt keys don't match, returns raw template string not raising result = t("login.saved", provider="openrouter") assert isinstance(result, str) assert len(result) > 0