X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/2bab0ca060ff224091b20a0ac808a3febaba04b1..734dff037405469ada9a226be9c98be583823226:/test/python/cli/conftest.py diff --git a/test/python/cli/conftest.py b/test/python/cli/conftest.py index 1e3ca8ab..84f2d659 100644 --- a/test/python/cli/conftest.py +++ b/test/python/cli/conftest.py @@ -25,6 +25,23 @@ class MockParamCapture: return self.return_value +class AsyncMockParamCapture: + """ Mock that records the parameters with which a function was called + as well as the number of calls. + """ + def __init__(self, retval=0): + self.called = 0 + self.return_value = retval + self.last_args = None + self.last_kwargs = None + + async def __call__(self, *args, **kwargs): + self.called += 1 + self.last_args = args + self.last_kwargs = kwargs + return self.return_value + + class DummyTokenizer: def __init__(self, *args, **kwargs): self.update_sql_functions_called = False @@ -51,8 +68,7 @@ def cli_call(): Returns a function that can be called with the desired CLI arguments. """ def _call_nominatim(*args): - return nominatim_db.cli.nominatim(module_dir='MODULE NOT AVAILABLE', - osm2pgsql_path='OSM2PGSQL NOT AVAILABLE', + return nominatim_db.cli.nominatim(osm2pgsql_path='OSM2PGSQL NOT AVAILABLE', cli_args=args) return _call_nominatim @@ -69,6 +85,17 @@ def mock_func_factory(monkeypatch): return get_mock +@pytest.fixture +def async_mock_func_factory(monkeypatch): + def get_mock(module, func): + mock = AsyncMockParamCapture() + mock.func_name = func + monkeypatch.setattr(module, func, mock) + return mock + + return get_mock + + @pytest.fixture def cli_tokenizer_mock(monkeypatch): tok = DummyTokenizer()