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

1from types import SimpleNamespace 

2 

3import pytest 

4 

5from ckanext.udc.solr import config as solr_config 

6 

7 

8class DummyConfig: 

9 def __init__(self, values): 

10 self._values = values 

11 

12 def get(self, key, default=None): 

13 return self._values.get(key, default) 

14 

15 

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) 

24 

25 assert solr_config.get_udc_langs() == ["fr", "en", "es"] 

26 

27 

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)) 

32 

33 assert solr_config.get_current_lang() == "es" 

34 

35 

36def test_pick_locale_prefers_requested_language(monkeypatch): 

37 monkeypatch.setattr(solr_config, "h", SimpleNamespace(lang=lambda: "fr")) 

38 

39 texts = {"en": "Hello", "fr": "Bonjour", "es": "Hola"} 

40 

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({}) == "" 

45 

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"