]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/python/cli/test_cmd_refresh.py
release 4.5.0.post7
[nominatim.git] / test / python / cli / test_cmd_refresh.py
index ed3a68babce0a21256c860f94345cedcf5928ec2..9f3d7bb241e46b31e3f4a548722ad3b2c60ee5ad 100644 (file)
@@ -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)
 #
 #
 # 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
 
 # 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:
 
 
 class TestRefresh:
 
@@ -24,12 +24,11 @@ class TestRefresh:
     @pytest.mark.parametrize("command,func", [
                              ('address-levels', 'load_address_levels_from_config'),
                              ('wiki-data', 'import_wikipedia_articles'),
     @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'),
                              ('importance', 'recompute_importance'),
-                             ('website', 'setup_website'),
                              ])
     def test_refresh_command(self, mock_func_factory, command, func):
                              ])
     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
 
         assert self.call_nominatim('refresh', '--' + command) == 0
         assert func_mock.called == 1
@@ -45,9 +44,9 @@ class TestRefresh:
         assert self.tokenizer_mock.update_word_tokens_called
 
 
         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
 
         assert self.call_nominatim('refresh', '--postcodes') == 0
         assert func_mock.called == 1
@@ -60,7 +59,7 @@ class TestRefresh:
 
 
     def test_refresh_create_functions(self, mock_func_factory):
 
 
     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
 
         assert self.call_nominatim('refresh', '--functions') == 0
         assert func_mock.called == 1
@@ -72,23 +71,32 @@ class TestRefresh:
 
         assert self.call_nominatim('refresh', '--wiki-data') == 1
 
 
         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 = []
         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)
                             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'))
                             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 calls == ['import', 'update']
+        assert func_mock.called == 1
 
     @pytest.mark.parametrize('params', [('--data-object', 'w234'),
                                         ('--data-object', 'N23', '--data-object', 'N24'),
 
     @pytest.mark.parametrize('params', [('--data-object', 'w234'),
                                         ('--data-object', 'N23', '--data-object', 'N24'),
@@ -96,7 +104,7 @@ class TestRefresh:
                                         ('--data-area', 'r7723', '--data-area', 'r2'),
                                         ('--data-area', 'R9284425', '--data-object', 'n1234567894567')])
     def test_refresh_objects(self, params, mock_func_factory):
                                         ('--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
 
 
         assert self.call_nominatim('refresh', *params) == 0
 
@@ -106,7 +114,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):
     @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
 
         self.call_nominatim('refresh', func, param) == 1
         assert func_mock.called == 0