]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/python/cli/conftest.py
also enable flake for tests in github actions
[nominatim.git] / test / python / cli / conftest.py
index 1e3ca8abbe8b02a66361b26e7e640345cdb0be9b..921a3a322949bcec14d876a8895c6f4b2473c363 100644 (file)
@@ -2,12 +2,13 @@
 #
 # This file is part of Nominatim. (https://nominatim.org)
 #
-# Copyright (C) 2024 by the Nominatim developer community.
+# Copyright (C) 2025 by the Nominatim developer community.
 # For a full list of authors see the git log.
 import pytest
 
 import nominatim_db.cli
 
+
 class MockParamCapture:
     """ Mock that records the parameters with which a function was called
         as well as the number of calls.
@@ -25,6 +26,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 +69,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 +86,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()