[fix] test_locale_optimized_territory_1_fr (test_locales.TestLocales)

Unit test fails::

    Traceback (most recent call last):
      File "/share/searxng/local/py3/lib/python3.10/site-packages/parameterized/parameterized.py", line 620, in standalone_func
        return func(*(a + p.args), **p.kwargs, **kw)
      File "/share/searxng/tests/unit/test_locales.py", line 121, in test_locale_optimized_territory
        self.assertEqual(locales.match_locale(locale, locale_list), expected_locale)
    AssertionError: 'fr-CH' != 'fr-BE'
    - fr-CH
    + fr-BE

With the `babel` update from 2.17.0 to 2.18.0 the population DB has been
updated (the test was implemented for the old values).

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
Markus Heiser
2026-02-06 14:16:07 +01:00
committed by Markus Heiser
parent 578e59a54e
commit b5bb27f231
2 changed files with 12 additions and 6 deletions
+1 -1
View File
@@ -366,7 +366,7 @@ def get_engine_locale(searxng_locale: str, engine_locales: dict[str, str], defau
if engine_locale is None: if engine_locale is None:
engine_locale = default engine_locale = default
return default return engine_locale
def match_locale(searxng_locale: str, locale_tag_list: list[str], fallback: str | None = None) -> str | None: def match_locale(searxng_locale: str, locale_tag_list: list[str], fallback: str | None = None) -> str | None:
+11 -5
View File
@@ -99,11 +99,17 @@ class TestLocales(SearxTestCase):
@parameterized.expand( @parameterized.expand(
[ [
('fr-BE', ['fr-FR', 'fr-CA', 'nl-BE'], 'nl-BE'), # A user selects region 'fr-BE' which should end in nl-BE # approximation rule (*by territory*) -> territory has priority over the lang:
('fr', ['fr-BE', 'fr-CH'], 'fr-BE'), # A user selects fr with 2 locales, # A user selects region 'fr-BE' which should end in nl-BE
# the get_engine_locale selects the locale by looking at the "population ('fr-BE', ['fr-FR', 'fr-CA', 'nl-BE'], 'nl-BE'),
# percent" and this percentage has an higher amount in BE (68.%) # approximation rule (*by language*) -> Check in which territories
# compared to CH (21%) # the language has an official status and if one of these
# territories is supported:
# A user selects fr with 2 locales where fr is a offical language,
# the get_engine_locale selects the locale by looking at the
# "population percent" and this percentage has a higher amount in
# BE (population 38%) compared to IT (population 20).
('fr', ['fr-BE', 'fr-IT'], 'fr-BE'),
] ]
) )
def test_locale_optimized_territory(self, locale: str, locale_list: list[str], expected_locale: str): def test_locale_optimized_territory(self, locale: str, locale_list: list[str], expected_locale: str):