]> git.openstreetmap.org Git - nominatim.git/commitdiff
add tests for get_string_list()
authorSarah Hoffmann <lonvia@denofr.de>
Mon, 7 Feb 2022 10:22:24 +0000 (11:22 +0100)
committerSarah Hoffmann <lonvia@denofr.de>
Mon, 7 Feb 2022 10:22:24 +0000 (11:22 +0100)
Renaming test file for sanitizer config because pytest requires
unique names for test files.

nominatim/tokenizer/sanitizers/config.py
test/python/tokenizer/sanitizers/test_sanitizer_config.py [moved from test/python/tokenizer/sanitizers/test_config.py with 74% similarity]

index 3ff681b96e2115eda4293b98b22eb628d414f6a9..ecfcacbe551e7c0747e20b1e14e30458c3b858bc 100644 (file)
@@ -33,7 +33,7 @@ class SanitizerConfig(UserDict):
             return None if default is None else list(default)
 
         if isinstance(values, str):
-            return [values]
+            return [values] if values else []
 
         if not isinstance(values, (list, tuple)):
             raise UsageError(f"Parameter '{param}' must be string or list of strings.")
similarity index 74%
rename from test/python/tokenizer/sanitizers/test_config.py
rename to test/python/tokenizer/sanitizers/test_sanitizer_config.py
index 612df5d9d035dc59e7bb6f1b368bde90d12f0fc0..02794776cce6e3ed6caffc7262dd343ab5b140a3 100644 (file)
@@ -13,6 +13,40 @@ from nominatim.errors import UsageError
 from nominatim.tokenizer.place_sanitizer import PlaceName
 from nominatim.tokenizer.sanitizers.config import SanitizerConfig
 
+def test_string_list_default_empty():
+    assert SanitizerConfig().get_string_list('op') == []
+
+
+def test_string_list_default_none():
+    assert SanitizerConfig().get_string_list('op', default=None) is None
+
+
+def test_string_list_default_something():
+    assert SanitizerConfig().get_string_list('op', default=['a', 'b']) == ['a', 'b']
+
+
+def test_string_list_value_string():
+    assert SanitizerConfig({'op': 't'}).get_string_list('op', default=['a', 'b']) == ['t']
+
+
+def test_string_list_value_list():
+    assert SanitizerConfig({'op': ['1', '2']}).get_string_list('op') == ['1', '2']
+
+
+def test_string_list_value_empty():
+    assert SanitizerConfig({'op': ''}).get_string_list('op', default=['a', 'b']) == []
+
+
+def test_string_list_value_dict():
+    with pytest.raises(UsageError):
+        SanitizerConfig({'op': {'1': 'a'}}).get_string_list('op')
+
+
+def test_string_list_value_int_list():
+    with pytest.raises(UsageError):
+        SanitizerConfig({'op': [1, 2]}).get_string_list('op')
+
+
 @pytest.mark.parametrize('inp', ('fg34', 'f\\f', 'morning [glory]', '56.78'))
 def test_create_split_regex_no_params_unsplit(inp):
     regex = SanitizerConfig().get_delimiter()