Coverage for ckanext/udc/tests/test_solr_config.py: 100%
27 statements
« prev ^ index » next coverage.py v7.7.1, created at 2026-01-19 23:48 +0000
« prev ^ index » next coverage.py v7.7.1, created at 2026-01-19 23:48 +0000
1from types import SimpleNamespace
3import pytest
5from ckanext.udc.solr import config as solr_config
8class DummyConfig:
9 def __init__(self, values):
10 self._values = values
12 def get(self, key, default=None):
13 return self._values.get(key, default)
16def test_get_udc_langs_includes_default_and_dedupes(monkeypatch):
17 dummy = DummyConfig(
18 {
19 "ckan.locale_default": "fr",
20 "udc.multilingual.languages": "en es en fr",
21 }
22 )
23 monkeypatch.setattr(solr_config, "config", dummy)
25 assert solr_config.get_udc_langs() == ["fr", "en", "es"]
28def test_get_current_lang_falls_back_to_default(monkeypatch):
29 dummy = DummyConfig({"ckan.locale_default": "es"})
30 monkeypatch.setattr(solr_config, "config", dummy)
31 monkeypatch.setattr(solr_config, "h", SimpleNamespace(lang=lambda: None))
33 assert solr_config.get_current_lang() == "es"
36def test_pick_locale_prefers_requested_language(monkeypatch):
37 monkeypatch.setattr(solr_config, "h", SimpleNamespace(lang=lambda: "fr"))
39 texts = {"en": "Hello", "fr": "Bonjour", "es": "Hola"}
41 assert solr_config.pick_locale(texts, lang="es") == "Hola"
42 assert solr_config.pick_locale(texts) == "Bonjour"
43 assert solr_config.pick_locale("plain text") == "plain text"
44 assert solr_config.pick_locale({}) == ""
46 fallback_texts = {"en": "Hello", "de": "Hallo"}
47 # When current language missing, it should fall back to English
48 monkeypatch.setattr(solr_config, "h", SimpleNamespace(lang=lambda: "it"))
49 assert solr_config.pick_locale(fallback_texts) == "Hello"