X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/37afa2180b39a8c33092ef9f9424fcf70843e47e..2c8fb31381def167adcee4c660c17c89a40f2de7:/test/python/cli/conftest.py diff --git a/test/python/cli/conftest.py b/test/python/cli/conftest.py index 2013b16f..1bb393fb 100644 --- a/test/python/cli/conftest.py +++ b/test/python/cli/conftest.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. import pytest import nominatim.cli @@ -19,32 +25,39 @@ class MockParamCapture: return self.return_value +class DummyTokenizer: + def __init__(self, *args, **kwargs): + self.update_sql_functions_called = False + self.finalize_import_called = False + self.update_statistics_called = False + self.update_word_tokens_called = False + + def update_sql_functions(self, *args): + self.update_sql_functions_called = True + + def finalize_import(self, *args): + self.finalize_import_called = True + + def update_statistics(self, *args): + self.update_statistics_called = True + + def update_word_tokens(self, *args): + self.update_word_tokens_called = True + @pytest.fixture -def cli_call(src_dir): +def cli_call(): """ Call the nominatim main function with the correct paths set. Returns a function that can be called with the desired CLI arguments. """ def _call_nominatim(*args): return nominatim.cli.nominatim(module_dir='MODULE NOT AVAILABLE', osm2pgsql_path='OSM2PGSQL NOT AVAILABLE', - phplib_dir=str(src_dir / 'lib-php'), - data_dir=str(src_dir / 'data'), - phpcgi_path='/usr/bin/php-cgi', - sqllib_dir=str(src_dir / 'lib-sql'), - config_dir=str(src_dir / 'settings'), cli_args=args) return _call_nominatim -@pytest.fixture -def mock_run_legacy(monkeypatch): - mock = MockParamCapture() - monkeypatch.setattr(nominatim.cli, 'run_legacy_script', mock) - return mock - - @pytest.fixture def mock_func_factory(monkeypatch): def get_mock(module, func): @@ -54,3 +67,14 @@ def mock_func_factory(monkeypatch): return mock return get_mock + + +@pytest.fixture +def cli_tokenizer_mock(monkeypatch): + tok = DummyTokenizer() + monkeypatch.setattr(nominatim.tokenizer.factory, 'get_tokenizer_for_db', + lambda *args: tok) + monkeypatch.setattr(nominatim.tokenizer.factory, 'create_tokenizer', + lambda *args: tok) + + return tok