X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/54d35ddfe9054f3bc49896fc47c2a02b3fc43066..23dabad0b0c8c1ffd9b4973bfc9e1d739e6128d7:/test/python/cli/test_cmd_refresh.py diff --git a/test/python/cli/test_cmd_refresh.py b/test/python/cli/test_cmd_refresh.py index 18cc805a..f3f93f0f 100644 --- a/test/python/cli/test_cmd_refresh.py +++ b/test/python/cli/test_cmd_refresh.py @@ -1,3 +1,9 @@ +# SPDX-License-Identifier: GPL-2.0-only +# +# This file is part of Nominatim. (https://nominatim.org) +# +# Copyright (C) 2022 by the Nominatim developer community. +# For a full list of authors see the git log. """ Tests for command line interface wrapper for refresk command. """ @@ -33,6 +39,11 @@ class TestRefresh: assert self.tokenizer_mock.update_statistics_called + def test_refresh_word_tokens(self): + assert self.call_nominatim('refresh', '--word-tokens') == 0 + 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') @@ -60,6 +71,18 @@ class TestRefresh: assert self.call_nominatim('refresh', '--wiki-data') == 1 + def test_refresh_secondary_importance_file_not_found(self): + assert self.call_nominatim('refresh', '--secondary-importance') == 1 + + + def test_refresh_secondary_importance_new_table(self, mock_func_factory): + mocks = [mock_func_factory(nominatim.tools.refresh, 'import_secondary_importance'), + mock_func_factory(nominatim.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): calls = [] @@ -71,3 +94,24 @@ class TestRefresh: assert self.call_nominatim('refresh', '--importance', '--wiki-data') == 0 assert calls == ['import', 'update'] + + @pytest.mark.parametrize('params', [('--data-object', 'w234'), + ('--data-object', 'N23', '--data-object', 'N24'), + ('--data-area', 'R7723'), + ('--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') + + assert self.call_nominatim('refresh', *params) == 0 + + assert func_mock.called == len(params)/2 + + + @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') + + self.call_nominatim('refresh', func, param) == 1 + assert func_mock.called == 0