X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/042e31458917e83713cc60f73a0dc4c171db78b1..8e5a19b39209f20f41b7bd10ff7dbcdb8a3dcb9c:/test/python/tools/test_sp_wiki_loader.py diff --git a/test/python/tools/test_sp_wiki_loader.py b/test/python/tools/test_sp_wiki_loader.py index 0a64cd56..5c37c32f 100644 --- a/test/python/tools/test_sp_wiki_loader.py +++ b/test/python/tools/test_sp_wiki_loader.py @@ -1,59 +1,41 @@ -# SPDX-License-Identifier: GPL-2.0-only +# SPDX-License-Identifier: GPL-3.0-or-later # # This file is part of Nominatim. (https://nominatim.org) # -# Copyright (C) 2022 by the Nominatim developer community. +# Copyright (C) 2024 by the Nominatim developer community. # For a full list of authors see the git log. """ Tests for methods of the SPWikiLoader class. """ import pytest -from nominatim.tools.special_phrases.sp_wiki_loader import SPWikiLoader - -@pytest.fixture -def xml_wiki_content(src_dir): - """ - return the content of the static xml test file. - """ - xml_test_content = src_dir / 'test' / 'testdata' / 'special_phrases_test_content.txt' - return xml_test_content.read_text() +from nominatim_db.tools.special_phrases.sp_wiki_loader import SPWikiLoader @pytest.fixture -def sp_wiki_loader(monkeypatch, def_config, xml_wiki_content): +def sp_wiki_loader(src_dir, monkeypatch, def_config): """ Return an instance of SPWikiLoader. """ monkeypatch.setenv('NOMINATIM_LANGUAGES', 'en') loader = SPWikiLoader(def_config) - monkeypatch.setattr('nominatim.tools.special_phrases.sp_wiki_loader.SPWikiLoader._get_wiki_content', - lambda self, lang: xml_wiki_content) - return loader + def _mock_wiki_content(lang): + xml_test_content = src_dir / 'test' / 'testdata' / 'special_phrases_test_content.txt' + return xml_test_content.read_text() -def test_parse_xml(sp_wiki_loader, xml_wiki_content): - """ - Test method parse_xml() - Should return the right SpecialPhrase objects. - """ - phrases = sp_wiki_loader.parse_xml(xml_wiki_content) - check_phrases_content(phrases) + monkeypatch.setattr('nominatim_db.tools.special_phrases.sp_wiki_loader._get_wiki_content', + _mock_wiki_content) + return loader -def test_next(sp_wiki_loader): +def test_generate_phrases(sp_wiki_loader): """ Test objects returned from the next() method. It should return all SpecialPhrases objects of the 'en' special phrases. """ - phrases = next(sp_wiki_loader) - check_phrases_content(phrases) + phrases = list(sp_wiki_loader.generate_phrases()) -def check_phrases_content(phrases): - """ - Asserts that the given phrases list contains - the right phrases of the 'en' special phrases. - """ assert set((p.p_label, p.p_class, p.p_type, p.p_operator) for p in phrases) ==\ {('Zip Line', 'aerialway', 'zip_line', '-'), ('Zip Lines', 'aerialway', 'zip_line', '-'),