i18n: add LANGUAGES, ACTIVE_LANGUAGES, respond_in_clause helper

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Giorgio Gilestro 2026-05-27 16:46:32 +02:00
parent 2ecf250d53
commit 5730aad73c
2 changed files with 92 additions and 0 deletions

44
tests/test_i18n.py Normal file
View file

@ -0,0 +1,44 @@
"""Unit tests for app.services.i18n."""
from __future__ import annotations
import pytest
def test_languages_contains_all_four_plus_english():
from app.services.i18n import LANGUAGES
assert set(LANGUAGES.keys()) == {"en", "it", "es", "fr", "de"}
assert LANGUAGES["en"] == "English"
assert LANGUAGES["it"] == "Italian"
assert LANGUAGES["es"] == "Spanish"
assert LANGUAGES["fr"] == "French"
assert LANGUAGES["de"] == "German"
def test_active_languages_is_en_and_it_only():
from app.services.i18n import ACTIVE_LANGUAGES
assert ACTIVE_LANGUAGES == {"en", "it"}
def test_respond_in_clause_empty_for_english():
from app.services.i18n import respond_in_clause
assert respond_in_clause("en") == ""
def test_respond_in_clause_empty_for_none_or_empty():
from app.services.i18n import respond_in_clause
assert respond_in_clause("") == ""
assert respond_in_clause(None) == ""
def test_respond_in_clause_italian():
from app.services.i18n import respond_in_clause
result = respond_in_clause("it")
assert "Italian" in result
assert result.startswith("\n\n")
def test_respond_in_clause_unknown_lang_falls_back_to_english():
"""Defensive: a raw POST or stale lang code should not crash the
prompt assembly. Unknown codes map to no-suffix (English default)."""
from app.services.i18n import respond_in_clause
assert respond_in_clause("xx") == ""