import unittest from flask import Flask from app.utils import locale as _LOCALE _FLASK_APP = Flask(__name__) class LocaleRuntimeTests(unittest.TestCase): def tearDown(self): _LOCALE.set_locale("th") def test_background_locale_normalizes_legacy_and_unknown_values(self): _LOCALE.set_locale("zh-CN") self.assertEqual(_LOCALE.get_locale(), "th") _LOCALE.set_locale("en-US") self.assertEqual(_LOCALE.get_locale(), "en") _LOCALE.set_locale("fr") self.assertEqual(_LOCALE.get_locale(), "th") def test_request_locale_negotiates_supported_language_only(self): with _FLASK_APP.test_request_context( headers={"Accept-Language": "zh-CN;q=1, en-US;q=0.8, th;q=0"} ): self.assertEqual(_LOCALE.get_locale(), "en") def test_translation_fallback_is_not_chinese(self): _LOCALE.set_locale("zh") translated = _LOCALE.t("api.projectNotFound", id="demo") self.assertFalse(any("\u3400" <= char <= "\u9fff" for char in translated)) self.assertNotEqual(translated, "api.projectNotFound") self.assertFalse( any("\u3400" <= char <= "\u9fff" for char in _LOCALE.get_language_instruction()) ) if __name__ == "__main__": unittest.main()