Refacto du code coté Python, java et coté angular afin de mieux séparer les responsabilité et d'avoir moins de répétitivité dans le code.
Some checks failed
E2E Tests / e2e (push) Waiting to run
Tests unitaires / Web (Angular · vitest + couverture) (push) Successful in 26s
Build & Push Images / tests (push) Failing after 13s
Build & Push Images / build (brain) (push) Has been skipped
Build & Push Images / build (core) (push) Has been skipped
Build & Push Images / build (web) (push) Has been skipped
Build & Push Images / build-switcher (push) Has been skipped
Tests unitaires / Brain (Python · pytest + couverture) (push) Successful in 1m12s
Tests unitaires / Core (Java · mvn test + JaCoCo) (push) Failing after 1m28s
Some checks failed
E2E Tests / e2e (push) Waiting to run
Tests unitaires / Web (Angular · vitest + couverture) (push) Successful in 26s
Build & Push Images / tests (push) Failing after 13s
Build & Push Images / build (brain) (push) Has been skipped
Build & Push Images / build (core) (push) Has been skipped
Build & Push Images / build (web) (push) Has been skipped
Build & Push Images / build-switcher (push) Has been skipped
Tests unitaires / Brain (Python · pytest + couverture) (push) Successful in 1m12s
Tests unitaires / Core (Java · mvn test + JaCoCo) (push) Failing after 1m28s
Mise en place de tests unitaires coté Python et Angular Mise en place de la couverture de test directement dans le workflow : le programme ne build pas si jamais un test échoue Passage en v0.16.2 en conséquence
This commit is contained in:
39
brain/tests/test_language.py
Normal file
39
brain/tests/test_language.py
Normal file
@@ -0,0 +1,39 @@
|
||||
"""Tests de la normalisation de langue (app.core.language)."""
|
||||
from __future__ import annotations
|
||||
|
||||
import pytest
|
||||
|
||||
from app.core import language
|
||||
|
||||
|
||||
@pytest.mark.parametrize("raw, expected", [
|
||||
("fr", "fr"),
|
||||
("en", "en"),
|
||||
("EN", "en"),
|
||||
("en-US", "en"),
|
||||
("fr-FR,fr;q=0.9,en;q=0.8", "fr"),
|
||||
("en-GB,en;q=0.9", "en"),
|
||||
("de", "fr"), # non supporté → défaut
|
||||
("", "fr"),
|
||||
(None, "fr"),
|
||||
(" EN-gb ", "en"), # casse + espaces tolérés
|
||||
])
|
||||
def test_normalize(raw, expected):
|
||||
assert language.normalize(raw) == expected
|
||||
|
||||
|
||||
def test_language_name_known_and_fallback():
|
||||
assert language.language_name("fr") == "français"
|
||||
assert language.language_name("en") == "anglais"
|
||||
# Code inconnu → nom de la langue par défaut.
|
||||
assert language.language_name("xx") == "français"
|
||||
|
||||
|
||||
def test_instruction_mentions_target_language():
|
||||
assert "anglais" in language.instruction("en")
|
||||
assert "français" in language.instruction("fr")
|
||||
|
||||
|
||||
def test_get_user_language_uses_normalize():
|
||||
assert language.get_user_language("en-US") == "en"
|
||||
assert language.get_user_language(None) == "fr"
|
||||
Reference in New Issue
Block a user