X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/c85b74497b385a633ed3f487c77cc0736d5f7328..a4d7cdd2ad7b1e087751e55a56454781aa6580bc:/test/python/cli/test_cmd_refresh.py?ds=sidebyside diff --git a/test/python/cli/test_cmd_refresh.py b/test/python/cli/test_cmd_refresh.py index ed3a68ba..9074b2cc 100644 --- a/test/python/cli/test_cmd_refresh.py +++ b/test/python/cli/test_cmd_refresh.py @@ -1,17 +1,17 @@ -# 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 command line interface wrapper for refresk command. """ import pytest -import nominatim.tools.refresh -import nominatim.tools.postcodes -import nominatim.indexer.indexer +import nominatim_db.tools.refresh +import nominatim_db.tools.postcodes +import nominatim_db.indexer.indexer class TestRefresh: @@ -24,12 +24,12 @@ class TestRefresh: @pytest.mark.parametrize("command,func", [ ('address-levels', 'load_address_levels_from_config'), ('wiki-data', 'import_wikipedia_articles'), - ('osm-views', 'import_osm_views_geotiff') ('importance', 'recompute_importance'), ('website', 'setup_website'), ]) def test_refresh_command(self, mock_func_factory, command, func): - func_mock = mock_func_factory(nominatim.tools.refresh, func) + mock_func_factory(nominatim_db.tools.refresh, 'create_functions') + func_mock = mock_func_factory(nominatim_db.tools.refresh, func) assert self.call_nominatim('refresh', '--' + command) == 0 assert func_mock.called == 1 @@ -45,9 +45,9 @@ class TestRefresh: assert self.tokenizer_mock.update_word_tokens_called - def test_refresh_postcodes(self, mock_func_factory, place_table): - func_mock = mock_func_factory(nominatim.tools.postcodes, 'update_postcodes') - idx_mock = mock_func_factory(nominatim.indexer.indexer.Indexer, 'index_postcodes') + def test_refresh_postcodes(self, async_mock_func_factory, mock_func_factory, place_table): + func_mock = mock_func_factory(nominatim_db.tools.postcodes, 'update_postcodes') + idx_mock = async_mock_func_factory(nominatim_db.indexer.indexer.Indexer, 'index_postcodes') assert self.call_nominatim('refresh', '--postcodes') == 0 assert func_mock.called == 1 @@ -60,7 +60,7 @@ class TestRefresh: def test_refresh_create_functions(self, mock_func_factory): - func_mock = mock_func_factory(nominatim.tools.refresh, 'create_functions') + func_mock = mock_func_factory(nominatim_db.tools.refresh, 'create_functions') assert self.call_nominatim('refresh', '--functions') == 0 assert func_mock.called == 1 @@ -72,23 +72,32 @@ class TestRefresh: assert self.call_nominatim('refresh', '--wiki-data') == 1 - def test_refresh_osm_views_geotiff_file_not_found(self, monkeypatch): - monkeypatch.setenv('NOMINATIM_OSM_VIEWS_DATA_PATH', 'gjoiergjeroi345Q') - assert self.call_nominatim('refresh', '--osm-views') == 1 + def test_refresh_secondary_importance_file_not_found(self): + assert self.call_nominatim('refresh', '--secondary-importance') == 1 - def test_refresh_importance_computed_after_wiki_and_osm_views_import(self, monkeypatch): + + def test_refresh_secondary_importance_new_table(self, mock_func_factory): + mocks = [mock_func_factory(nominatim_db.tools.refresh, 'import_secondary_importance'), + mock_func_factory(nominatim_db.tools.refresh, 'create_functions')] + + assert self.call_nominatim('refresh', '--secondary-importance') == 0 + assert mocks[0].called == 1 + assert mocks[1].called == 1 + + + def test_refresh_importance_computed_after_wiki_import(self, monkeypatch, mock_func_factory): calls = [] - monkeypatch.setattr(nominatim.tools.refresh, 'import_wikipedia_articles', - lambda *args, **kwargs: calls.append('import') or 0) - monkeypatch.setattr(nominatim.tools.refresh, 'import_osm_views_geotiff', + monkeypatch.setattr(nominatim_db.tools.refresh, 'import_wikipedia_articles', lambda *args, **kwargs: calls.append('import') or 0) - monkeypatch.setattr(nominatim.tools.refresh, 'recompute_importance', + monkeypatch.setattr(nominatim_db.tools.refresh, 'recompute_importance', lambda *args, **kwargs: calls.append('update')) + func_mock = mock_func_factory(nominatim_db.tools.refresh, 'create_functions') - assert self.call_nominatim('refresh', '--importance', '--wiki-data', '--osm-views') == 0 + assert self.call_nominatim('refresh', '--importance', '--wiki-data') == 0 assert calls == ['import', 'update'] + assert func_mock.called == 1 @pytest.mark.parametrize('params', [('--data-object', 'w234'), ('--data-object', 'N23', '--data-object', 'N24'), @@ -96,7 +105,7 @@ class TestRefresh: ('--data-area', 'r7723', '--data-area', 'r2'), ('--data-area', 'R9284425', '--data-object', 'n1234567894567')]) def test_refresh_objects(self, params, mock_func_factory): - func_mock = mock_func_factory(nominatim.tools.refresh, 'invalidate_osm_object') + func_mock = mock_func_factory(nominatim_db.tools.refresh, 'invalidate_osm_object') assert self.call_nominatim('refresh', *params) == 0 @@ -106,7 +115,7 @@ class TestRefresh: @pytest.mark.parametrize('func', ('--data-object', '--data-area')) @pytest.mark.parametrize('param', ('234', 'a55', 'R 453', 'Rel')) def test_refresh_objects_bad_param(self, func, param, mock_func_factory): - func_mock = mock_func_factory(nominatim.tools.refresh, 'invalidate_osm_object') + func_mock = mock_func_factory(nominatim_db.tools.refresh, 'invalidate_osm_object') self.call_nominatim('refresh', func, param) == 1 assert func_mock.called == 0