From b2ae7156995c7ad461add1f751c59bdf58e75f8f Mon Sep 17 00:00:00 2001 From: AntoJvlt Date: Sat, 17 Apr 2021 19:45:24 +0200 Subject: [PATCH] Only log a warning if a wrong input is detected on the wiki while importing special phrases --- nominatim/tools/special_phrases.py | 9 ++++++--- test/python/test_tools_import_special_phrases.py | 8 +++----- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/nominatim/tools/special_phrases.py b/nominatim/tools/special_phrases.py index af012ffb..9d0259dc 100644 --- a/nominatim/tools/special_phrases.py +++ b/nominatim/tools/special_phrases.py @@ -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)) diff --git a/test/python/test_tools_import_special_phrases.py b/test/python/test_tools_import_special_phrases.py index f8f6f2dd..4890e0b2 100644 --- a/test/python/test_tools_import_special_phrases.py +++ b/test/python/test_tools_import_special_phrases.py @@ -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): """ -- 2.39.5