remove the language parameter in the SPWikiLoader

Languages must always be configured through config or environment.
Also use monkeypatched environment in tests.
This commit is contained in:
Sarah Hoffmann
2022-05-29 14:06:05 +02:00
parent 61d813bfef
commit 042e314589
3 changed files with 11 additions and 7 deletions

View File

@@ -18,14 +18,14 @@ class SPWikiLoader(Iterator):
""" """
Handles loading of special phrases from the wiki. Handles loading of special phrases from the wiki.
""" """
def __init__(self, config, languages=None): def __init__(self, config):
super().__init__() super().__init__()
self.config = config self.config = config
# Compile the regex here to increase performances. # Compile the regex here to increase performances.
self.occurence_pattern = re.compile( self.occurence_pattern = re.compile(
r'\| *([^\|]+) *\|\| *([^\|]+) *\|\| *([^\|]+) *\|\| *([^\|]+) *\|\| *([\-YN])' r'\| *([^\|]+) *\|\| *([^\|]+) *\|\| *([^\|]+) *\|\| *([^\|]+) *\|\| *([\-YN])'
) )
self.languages = self._load_languages() if not languages else list(languages) self._load_languages()
def __next__(self): def __next__(self):
if not self.languages: if not self.languages:
@@ -56,12 +56,14 @@ class SPWikiLoader(Iterator):
or default if there is no languages configured. or default if there is no languages configured.
The system will extract special phrases only from all specified languages. The system will extract special phrases only from all specified languages.
""" """
default_languages = [ if self.config.LANGUAGES:
self.languages = self.config.get_str_list('LANGUAGES')
else:
self.languages = [
'af', 'ar', 'br', 'ca', 'cs', 'de', 'en', 'es', 'af', 'ar', 'br', 'ca', 'cs', 'de', 'en', 'es',
'et', 'eu', 'fa', 'fi', 'fr', 'gl', 'hr', 'hu', 'et', 'eu', 'fa', 'fi', 'fr', 'gl', 'hr', 'hu',
'ia', 'is', 'it', 'ja', 'mk', 'nl', 'no', 'pl', 'ia', 'is', 'it', 'ja', 'mk', 'nl', 'no', 'pl',
'ps', 'pt', 'ru', 'sk', 'sl', 'sv', 'uk', 'vi'] 'ps', 'pt', 'ru', 'sk', 'sl', 'sv', 'uk', 'vi']
return self.config.LANGUAGES.split(',') if self.config.LANGUAGES else default_languages
@staticmethod @staticmethod
def _get_wiki_content(lang): def _get_wiki_content(lang):

View File

@@ -23,11 +23,12 @@ def testfile_dir(src_dir):
@pytest.fixture @pytest.fixture
def sp_importer(temp_db_conn, def_config): def sp_importer(temp_db_conn, def_config, monkeypatch):
""" """
Return an instance of SPImporter. Return an instance of SPImporter.
""" """
loader = SPWikiLoader(def_config, ['en']) monkeypatch.setenv('NOMINATIM_LANGUAGES', 'en')
loader = SPWikiLoader(def_config)
return SPImporter(def_config, temp_db_conn, loader) return SPImporter(def_config, temp_db_conn, loader)

View File

@@ -24,7 +24,8 @@ def sp_wiki_loader(monkeypatch, def_config, xml_wiki_content):
""" """
Return an instance of SPWikiLoader. Return an instance of SPWikiLoader.
""" """
loader = SPWikiLoader(def_config, ['en']) monkeypatch.setenv('NOMINATIM_LANGUAGES', 'en')
loader = SPWikiLoader(def_config)
monkeypatch.setattr('nominatim.tools.special_phrases.sp_wiki_loader.SPWikiLoader._get_wiki_content', monkeypatch.setattr('nominatim.tools.special_phrases.sp_wiki_loader.SPWikiLoader._get_wiki_content',
lambda self, lang: xml_wiki_content) lambda self, lang: xml_wiki_content)
return loader return loader