forked from hans/Nominatim
add get_str_list() for config
Converts a config value written as a comma-sparated list into a Python list of strings.
This commit is contained in:
@@ -128,7 +128,7 @@ class SetupAll:
|
||||
drop=args.no_updates)
|
||||
LOG.warning('Create search index for default country names.')
|
||||
country_info.create_country_names(conn, tokenizer,
|
||||
args.config.LANGUAGES)
|
||||
args.config.get_str_list('LANGUAGES'))
|
||||
if args.no_updates:
|
||||
freeze.drop_update_tables(conn)
|
||||
tokenizer.finalize_import(args.config)
|
||||
|
||||
@@ -99,6 +99,17 @@ class Configuration:
|
||||
raise UsageError("Configuration error.") from exp
|
||||
|
||||
|
||||
def get_str_list(self, name):
|
||||
""" Return the given configuration parameter as a list of strings.
|
||||
The values are assumed to be given as a comma-sparated list and
|
||||
will be stripped before returning them. On empty values None
|
||||
is returned.
|
||||
"""
|
||||
raw = self.__getattr__(name)
|
||||
|
||||
return [v.strip() for v in raw.split(',')] if raw else None
|
||||
|
||||
|
||||
def get_path(self, name):
|
||||
""" Return the given configuration parameter as a Path.
|
||||
If a relative path is configured, then the function converts this
|
||||
|
||||
@@ -131,9 +131,6 @@ def create_country_names(conn, tokenizer, languages=None):
|
||||
empty then only name translations for the given languages are added
|
||||
to the index.
|
||||
"""
|
||||
if languages:
|
||||
languages = languages.split(',')
|
||||
|
||||
def _include_key(key):
|
||||
return ':' not in key or not languages or \
|
||||
key[key.index(':') + 1:] in languages
|
||||
|
||||
@@ -173,6 +173,23 @@ def test_get_int_empty(make_config):
|
||||
config.get_int('DATABASE_MODULE_PATH')
|
||||
|
||||
|
||||
@pytest.mark.parametrize("value,outlist", [('sd', ['sd']),
|
||||
('dd,rr', ['dd', 'rr']),
|
||||
(' a , b ', ['a', 'b'])])
|
||||
def test_get_str_list_success(make_config, monkeypatch, value, outlist):
|
||||
config = make_config()
|
||||
|
||||
monkeypatch.setenv('NOMINATIM_MYLIST', value)
|
||||
|
||||
assert config.get_str_list('MYLIST') == outlist
|
||||
|
||||
|
||||
def test_get_str_list_empty(make_config):
|
||||
config = make_config()
|
||||
|
||||
assert config.get_str_list('LANGUAGES') is None
|
||||
|
||||
|
||||
def test_get_path_empty(make_config):
|
||||
config = make_config()
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ def test_setup_country_tables(src_dir, temp_db_with_extensions, dsn, temp_db_cur
|
||||
assert temp_db_cursor.table_rows('country_osm_grid') > 100
|
||||
|
||||
|
||||
@pytest.mark.parametrize("languages", (None, ' fr,en'))
|
||||
@pytest.mark.parametrize("languages", (None, ['fr', 'en']))
|
||||
def test_create_country_names(temp_db_with_extensions, temp_db_conn, temp_db_cursor,
|
||||
table_factory, tokenizer_mock, languages, loaded_country):
|
||||
|
||||
|
||||
Reference in New Issue
Block a user