]> git.openstreetmap.org Git - nominatim.git/commitdiff
Only log a warning if a wrong input is detected on the wiki while importing special...
authorAntoJvlt <antonin.jolivat@gmail.com>
Sat, 17 Apr 2021 17:45:24 +0000 (19:45 +0200)
committerAntoJvlt <antonin.jolivat@gmail.com>
Sat, 17 Apr 2021 18:19:39 +0000 (20:19 +0200)
nominatim/tools/special_phrases.py
test/python/test_tools_import_special_phrases.py

index af012ffbf9fac9709bfcf27749d1c2cfdf481818..9d0259dc6e5533314b1fd664e33ce451fc936a27 100644 (file)
@@ -153,8 +153,10 @@ class SpecialPhrasesImporter():
         class_matchs = self.sanity_check_pattern.findall(phrase_class)
 
         if len(class_matchs) < 1 or len(type_matchs) < 1:
-            raise UsageError("Bad class/type for language {}: {}={}".format(
-                lang, phrase_class, phrase_type))
+            LOG.warning("Bad class/type for language %s: %s=%s. It will not be imported",
+                        lang, phrase_class, phrase_type)
+            return False
+        return True
 
     def _process_xml_content(self, xml_content, lang):
         """
@@ -205,7 +207,8 @@ class SpecialPhrasesImporter():
                 continue
 
             #sanity check, in case somebody added garbage in the wiki
-            self._check_sanity(lang, phrase_class, phrase_type)
+            if not self._check_sanity(lang, phrase_class, phrase_type):
+                continue
 
             class_type_pairs.add((phrase_class, phrase_type))
 
index f8f6f2dd5f7f968fbeb9b65d3cdeb0053c3d5ae2..4890e0b22be519e4c53a94880eeacec7e4075d3e 100644 (file)
@@ -64,13 +64,11 @@ def test_check_sanity_class(special_phrases_importer):
         If a wrong class or type is given, an UsageError should raise.
         If a good class and type are given, nothing special happens.
     """
-    with pytest.raises(UsageError):
-        special_phrases_importer._check_sanity('en', '', 'type')
     
-    with pytest.raises(UsageError):
-        special_phrases_importer._check_sanity('en', 'class', '')
+    assert not special_phrases_importer._check_sanity('en', '', 'type')
+    assert not special_phrases_importer._check_sanity('en', 'class', '')
 
-    special_phrases_importer._check_sanity('en', 'class', 'type')
+    assert special_phrases_importer._check_sanity('en', 'class', 'type')
 
 def test_load_white_and_black_lists(special_phrases_importer):
     """