]> git.openstreetmap.org Git - nominatim.git/commitdiff
use data paths from new nominatim.paths
authorSarah Hoffmann <lonvia@denofr.de>
Sat, 26 Nov 2022 21:00:43 +0000 (22:00 +0100)
committerSarah Hoffmann <lonvia@denofr.de>
Sun, 27 Nov 2022 11:15:41 +0000 (12:15 +0100)
19 files changed:
cmake/tool-installed.tmpl
cmake/tool.tmpl
nominatim/cli.py
nominatim/clicmd/admin.py
nominatim/clicmd/args.py
nominatim/clicmd/setup.py
nominatim/config.py
nominatim/tokenizer/factory.py
nominatim/tokenizer/legacy_tokenizer.py
nominatim/tools/exec_utils.py
nominatim/tools/refresh.py
test/bdd/steps/nominatim_environment.py
test/python/cli/conftest.py
test/python/cli/test_cli.py
test/python/cli/test_cmd_replication.py
test/python/config/test_config.py
test/python/config/test_config_load_module.py
test/python/conftest.py
test/python/tools/test_exec_utils.py

index d1c453fa49c90517b4d17195a57d5c424a3a6950..e38dafabebb2ed447839a95b94a455f86ea73866 100644 (file)
@@ -11,8 +11,4 @@ version.GIT_COMMIT_HASH = '@GIT_HASH@'
 
 exit(cli.nominatim(module_dir='@NOMINATIM_LIBDIR@/module',
                    osm2pgsql_path='@NOMINATIM_LIBDIR@/osm2pgsql',
-                   phplib_dir='@NOMINATIM_LIBDIR@/lib-php',
-                   sqllib_dir='@NOMINATIM_LIBDIR@/lib-sql',
-                   data_dir='@NOMINATIM_DATADIR@',
-                   config_dir='@NOMINATIM_CONFIGDIR@',
                    phpcgi_path='@PHPCGI_BIN@'))
index b76d2e0a4c377aa0ce356082ef798a5f3455c2d9..96c6c6dcdb079f1ad8a3422c433f9b8471c9abef 100755 (executable)
@@ -11,8 +11,4 @@ version.GIT_COMMIT_HASH = '@GIT_HASH@'
 
 exit(cli.nominatim(module_dir='@CMAKE_BINARY_DIR@/module',
                    osm2pgsql_path='@CMAKE_BINARY_DIR@/osm2pgsql/osm2pgsql',
-                   phplib_dir='@CMAKE_SOURCE_DIR@/lib-php',
-                   sqllib_dir='@CMAKE_SOURCE_DIR@/lib-sql',
-                   data_dir='@CMAKE_SOURCE_DIR@/data',
-                   config_dir='@CMAKE_SOURCE_DIR@/settings',
                    phpcgi_path='@PHPCGI_BIN@'))
index 8c2136f410988d37a2d1578b63ad6a7682f02d17..56ed6a078eb3a082f9430564b279b1470348c89e 100644 (file)
@@ -100,9 +100,7 @@ class CommandlineParser:
             self.parser.print_help()
             return 1
 
-        for arg in ('module_dir', 'osm2pgsql_path', 'phplib_dir', 'sqllib_dir',
-                    'data_dir', 'config_dir', 'phpcgi_path'):
-            setattr(args, arg, Path(kwargs[arg]))
+        args.phpcgi_path = Path(kwargs['phpcgi_path'])
         args.project_dir = Path(args.project_dir).resolve()
 
         if 'cli_args' not in kwargs:
@@ -111,13 +109,10 @@ class CommandlineParser:
                                 datefmt='%Y-%m-%d %H:%M:%S',
                                 level=max(4 - args.verbose, 1) * 10)
 
-        args.config = Configuration(args.project_dir, args.config_dir,
+        args.config = Configuration(args.project_dir,
                                     environ=kwargs.get('environ', os.environ))
-        args.config.set_libdirs(module=args.module_dir,
-                                osm2pgsql=args.osm2pgsql_path,
-                                php=args.phplib_dir,
-                                sql=args.sqllib_dir,
-                                data=args.data_dir)
+        args.config.set_libdirs(module=kwargs['module_dir'],
+                                osm2pgsql=kwargs['osm2pgsql_path'])
 
         log = logging.getLogger()
         log.warning('Using project directory: %s', str(args.project_dir))
@@ -195,7 +190,7 @@ class QueryExport:
         if args.restrict_to_osm_relation:
             params.extend(('--restrict-to-osm-relation', args.restrict_to_osm_relation))
 
-        return run_legacy_script('export.php', *params, nominatim_env=args)
+        return run_legacy_script('export.php', *params, config=args.config)
 
 
 class AdminServe:
index c3ba9c0b3ea2b9b2f7e546fd567aac3559debfe2..0c7739603e94c7a73bef52c5e556506f34f6bc50 100644 (file)
@@ -88,4 +88,4 @@ class AdminFuncs:
             params.append('--reverse-only')
         if args.target == 'search':
             params.append('--search-only')
-        return run_legacy_script(*params, nominatim_env=args)
+        return run_legacy_script(*params, config=args.config)
index 45599ad50f4b292f526f0aecec15e16099d797f6..98673ed6365261c123d116182bf5047b9d144ee7 100644 (file)
@@ -42,12 +42,6 @@ class NominatimArgs:
     # Basic environment set by root program.
     config: Configuration
     project_dir: Path
-    module_dir: Path
-    osm2pgsql_path: Path
-    phplib_dir: Path
-    sqllib_dir: Path
-    data_dir: Path
-    config_dir: Path
     phpcgi_path: Path
 
     # Global switches
@@ -181,7 +175,7 @@ class NominatimArgs:
             from the command line arguments. The resulting dict can be
             further customized and then used in `run_osm2pgsql()`.
         """
-        return dict(osm2pgsql=self.config.OSM2PGSQL_BINARY or self.osm2pgsql_path,
+        return dict(osm2pgsql=self.config.OSM2PGSQL_BINARY or self.config.lib_dir.osm2pgsql,
                     osm2pgsql_cache=self.osm2pgsql_cache or default_cache,
                     osm2pgsql_style=self.config.get_import_style_file(),
                     osm2pgsql_style_path=self.config.config_dir,
index 344167bb595577256ef691d0e291beafb0c8f252..68884fe121ad28a8e988cd801c7ee7142a254660 100644 (file)
@@ -87,7 +87,7 @@ class SetupAll:
 
             LOG.warning('Setting up country tables')
             country_info.setup_country_tables(args.config.get_libpq_dsn(),
-                                              args.data_dir,
+                                              args.config.lib_dir.data,
                                               args.no_partitions)
 
             LOG.warning('Importing OSM data file')
index 7502aff703ebaaf4610ddc4b591d212957c1229c..1728c291e92fadec129f8a531247165dbea688ee 100644 (file)
@@ -20,6 +20,7 @@ from dotenv import dotenv_values
 
 from nominatim.typing import StrPath
 from nominatim.errors import UsageError
+import nominatim.paths
 
 LOG = logging.getLogger()
 CONFIG_CACHE : Dict[str, Any] = {}
@@ -58,21 +59,22 @@ class Configuration:
         avoid conflicts with other environment variables.
     """
 
-    def __init__(self, project_dir: Path, config_dir: Path,
+    def __init__(self, project_dir: Optional[Path],
                  environ: Optional[Mapping[str, str]] = None) -> None:
         self.environ = environ or os.environ
         self.project_dir = project_dir
-        self.config_dir = config_dir
-        self._config = dotenv_values(str((config_dir / 'env.defaults').resolve()))
-        if project_dir is not None and (project_dir / '.env').is_file():
-            self._config.update(dotenv_values(str((project_dir / '.env').resolve())))
+        self.config_dir = nominatim.paths.CONFIG_DIR
+        self._config = dotenv_values(str(self.config_dir / 'env.defaults'))
+        if self.project_dir is not None and (self.project_dir / '.env').is_file():
+            self.project_dir = self.project_dir.resolve()
+            self._config.update(dotenv_values(str(self.project_dir / '.env')))
 
         class _LibDirs:
             module: Path
             osm2pgsql: Path
-            php: Path
-            sql: Path
-            data: Path
+            php = nominatim.paths.PHPLIB_DIR
+            sql = nominatim.paths.SQLLIB_DIR
+            data = nominatim.paths.DATA_DIR
 
         self.lib_dir = _LibDirs()
         self._private_plugins: Dict[str, object] = {}
@@ -82,7 +84,7 @@ class Configuration:
         """ Set paths to library functions and data.
         """
         for key, value in kwargs.items():
-            setattr(self.lib_dir, key, Path(value).resolve())
+            setattr(self.lib_dir, key, Path(value))
 
 
     def __getattr__(self, name: str) -> str:
@@ -136,6 +138,7 @@ class Configuration:
         cfgpath = Path(value)
 
         if not cfgpath.is_absolute():
+            assert self.project_dir is not None
             cfgpath = self.project_dir / cfgpath
 
         return cfgpath.resolve()
@@ -174,11 +177,11 @@ class Configuration:
         return self.find_config_file('', 'IMPORT_STYLE')
 
 
-    def get_os_env(self) -> Dict[str, Optional[str]]:
+    def get_os_env(self) -> Dict[str, str]:
         """ Return a copy of the OS environment with the Nominatim configuration
             merged in.
         """
-        env = dict(self._config)
+        env = {k: v for k, v in self._config.items() if v is not None}
         env.update(self.environ)
 
         return env
index f5159fa00fb64b3c64a36a95fd855a9aab61b847..d6bc51638019cd31281260a68402348f03954a13 100644 (file)
@@ -55,6 +55,7 @@ def create_tokenizer(config: Configuration, init_db: bool = True,
         module_name = config.TOKENIZER
 
     # Create the directory for the tokenizer data
+    assert config.project_dir is not None
     basedir = config.project_dir / 'tokenizer'
     if not basedir.exists():
         basedir.mkdir()
@@ -80,6 +81,7 @@ def get_tokenizer_for_db(config: Configuration) -> AbstractTokenizer:
         The function looks up the appropriate tokenizer in the database
         and initialises it.
     """
+    assert config.project_dir is not None
     basedir = config.project_dir / 'tokenizer'
     if not basedir.is_dir():
         # Directory will be repopulated by tokenizer below.
index 1b0b2980f9048f0fb42ac82e9b5bc8c8fe4f6298..a50dedb2da7f2ffb51ad836445d2282bd0408280 100644 (file)
@@ -106,6 +106,7 @@ class LegacyTokenizer(AbstractTokenizer):
             This copies all necessary data in the project directory to make
             sure the tokenizer remains stable even over updates.
         """
+        assert config.project_dir is not None
         module_dir = _install_module(config.DATABASE_MODULE_PATH,
                                      config.lib_dir.module,
                                      config.project_dir / 'module')
@@ -127,6 +128,8 @@ class LegacyTokenizer(AbstractTokenizer):
     def init_from_project(self, config: Configuration) -> None:
         """ Initialise the tokenizer from the project directory.
         """
+        assert config.project_dir is not None
+
         with connect(self.dsn) as conn:
             self.normalization = properties.get_property(conn, DBCFG_NORMALIZATION)
 
@@ -149,6 +152,8 @@ class LegacyTokenizer(AbstractTokenizer):
     def update_sql_functions(self, config: Configuration) -> None:
         """ Reimport the SQL functions for this tokenizer.
         """
+        assert config.project_dir is not None
+
         with connect(self.dsn) as conn:
             max_word_freq = properties.get_property(conn, DBCFG_MAXWORDFREQ)
             modulepath = config.DATABASE_MODULE_PATH or \
@@ -193,6 +198,8 @@ class LegacyTokenizer(AbstractTokenizer):
             This is a special migration function for updating existing databases
             to new software versions.
         """
+        assert config.project_dir is not None
+
         self.normalization = config.TERM_NORMALIZATION
         module_dir = _install_module(config.DATABASE_MODULE_PATH,
                                      config.lib_dir.module,
index ed3bb53b3d8187cccae788942974dbd597f874a8..9c801142f47438f0602a6095e344e2a58dd5cfa5 100644 (file)
@@ -15,6 +15,7 @@ import subprocess
 import urllib.request as urlrequest
 from urllib.parse import urlencode
 
+from nominatim.config import Configuration
 from nominatim.typing import StrPath
 from nominatim.version import version_str
 from nominatim.db.connection import get_pg_env
@@ -22,7 +23,7 @@ from nominatim.db.connection import get_pg_env
 LOG = logging.getLogger()
 
 def run_legacy_script(script: StrPath, *args: Union[int, str],
-                      nominatim_env: Any,
+                      config: Configuration,
                       throw_on_fail: bool = False) -> int:
     """ Run a Nominatim PHP script with the given arguments.
 
@@ -30,18 +31,18 @@ def run_legacy_script(script: StrPath, *args: Union[int, str],
         then throw a `CalledProcessError` on a non-zero exit.
     """
     cmd = ['/usr/bin/env', 'php', '-Cq',
-           str(nominatim_env.phplib_dir / 'admin' / script)]
+           str(config.lib_dir.php / 'admin' / script)]
     cmd.extend([str(a) for a in args])
 
-    env = nominatim_env.config.get_os_env()
-    env['NOMINATIM_DATADIR'] = str(nominatim_env.data_dir)
-    env['NOMINATIM_SQLDIR'] = str(nominatim_env.sqllib_dir)
-    env['NOMINATIM_CONFIGDIR'] = str(nominatim_env.config_dir)
-    env['NOMINATIM_DATABASE_MODULE_SRC_PATH'] = str(nominatim_env.module_dir)
+    env = config.get_os_env()
+    env['NOMINATIM_DATADIR'] = str(config.lib_dir.data)
+    env['NOMINATIM_SQLDIR'] = str(config.lib_dir.sql)
+    env['NOMINATIM_CONFIGDIR'] = str(config.config_dir)
+    env['NOMINATIM_DATABASE_MODULE_SRC_PATH'] = str(config.lib_dir.module)
     if not env['NOMINATIM_OSM2PGSQL_BINARY']:
-        env['NOMINATIM_OSM2PGSQL_BINARY'] = str(nominatim_env.osm2pgsql_path)
+        env['NOMINATIM_OSM2PGSQL_BINARY'] = str(config.lib_dir.osm2pgsql)
 
-    proc = subprocess.run(cmd, cwd=str(nominatim_env.project_dir), env=env,
+    proc = subprocess.run(cmd, cwd=str(config.project_dir), env=env,
                           check=throw_on_fail)
 
     return proc.returncode
index c50493cc847f529377653e95d521f51bcdd55321..b35d3aae1c6a2f269ca8c132da82d4d0f3713007 100644 (file)
@@ -216,6 +216,7 @@ def setup_website(basedir: Path, config: Configuration, conn: Connection) -> Non
         LOG.info('Creating website directory.')
         basedir.mkdir()
 
+    assert config.project_dir is not None
     template = dedent(f"""\
                       <?php
 
index 1e7515d6b28fa9c7d01ffa8659a2ab909e1e299c..9cba7d40abd728af0cb2a9386b751061b324a84f 100644 (file)
@@ -43,7 +43,7 @@ class NominatimEnvironment:
         self.code_coverage_path = config['PHPCOV']
         self.code_coverage_id = 1
 
-        self.default_config = Configuration(None, self.src_dir / 'settings').get_os_env()
+        self.default_config = Configuration(None).get_os_env()
         self.test_env = None
         self.template_db_done = False
         self.api_db_done = False
@@ -130,13 +130,9 @@ class NominatimEnvironment:
 
 
     def get_test_config(self):
-        cfg = Configuration(Path(self.website_dir.name), self.src_dir / 'settings',
-                            environ=self.test_env)
+        cfg = Configuration(Path(self.website_dir.name), environ=self.test_env)
         cfg.set_libdirs(module=self.build_dir / 'module',
-                        osm2pgsql=self.build_dir / 'osm2pgsql' / 'osm2pgsql',
-                        php=self.src_dir / 'lib-php',
-                        sql=self.src_dir / 'lib-sql',
-                        data=self.src_dir / 'data')
+                        osm2pgsql=self.build_dir / 'osm2pgsql' / 'osm2pgsql')
         return cfg
 
     def get_libpq_dsn(self):
index 420740cfc65568abf9b2dae1a53e3245ae6a434d..09bfd3534ad4ee96032e49db1d18d70eee9d5f32 100644 (file)
@@ -53,11 +53,7 @@ def cli_call(src_dir):
     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
index 07d6c31fded55d7adc57bed1192b56f1e8ff2858..1072f6c934195b9b1332497619fa24172f100396 100644 (file)
@@ -82,19 +82,17 @@ def test_cli_export_command(cli_call, mock_run_legacy):
                                          ('restrict-to-osm-way', '727'),
                                          ('restrict-to-osm-relation', '197532')
                                         ])
-def test_export_parameters(src_dir, tmp_path, param, value):
+def test_export_parameters(src_dir, tmp_path, param, value, monkeypatch):
     (tmp_path / 'admin').mkdir()
     (tmp_path / 'admin' / 'export.php').write_text(f"""<?php
         exit(strpos(implode(' ', $_SERVER['argv']), '--{param} {value}') >= 0 ? 0 : 10);
         """)
 
+    monkeypatch.setattr(nominatim.paths, 'PHPLIB_DIR', tmp_path)
+
     assert nominatim.cli.nominatim(module_dir='MODULE NOT AVAILABLE',
                                    osm2pgsql_path='OSM2PGSQL NOT AVAILABLE',
-                                   phplib_dir=str(tmp_path),
-                                   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=['export', '--' + param, value]) == 0
 
 
index 9fd4f5b3e7e60eaf900452fde11148420743c328..a22d077a9f94e11f5b4b263d839e2479191241e2 100644 (file)
@@ -15,6 +15,7 @@ import pytest
 import nominatim.cli
 import nominatim.indexer.indexer
 import nominatim.tools.replication
+import nominatim.tools.refresh
 from nominatim.db import status
 
 @pytest.fixture
@@ -107,7 +108,7 @@ class TestCliReplication:
     def test_replication_update_once_no_index(self, update_mock):
         assert self.call_nominatim('--once', '--no-index') == 0
 
-        assert str(update_mock.last_args[1]['osm2pgsql']) == 'OSM2PGSQL NOT AVAILABLE'
+        assert str(update_mock.last_args[1]['osm2pgsql']).endswith('OSM2PGSQL NOT AVAILABLE')
 
 
     def test_replication_update_custom_osm2pgsql(self, monkeypatch, update_mock):
index a9cbb48dd0ed9fb7bee323998aaa3d0e19fc2109..a003065d8e87f11e8d3cf77e74028ca3b971a8fb 100644 (file)
@@ -14,23 +14,23 @@ from nominatim.config import Configuration, flatten_config_list
 from nominatim.errors import UsageError
 
 @pytest.fixture
-def make_config(src_dir):
+def make_config():
     """ Create a configuration object from the given project directory.
     """
     def _mk_config(project_dir=None):
-        return Configuration(project_dir, src_dir / 'settings')
+        return Configuration(project_dir)
 
     return _mk_config
 
 @pytest.fixture
-def make_config_path(src_dir, tmp_path):
+def make_config_path(tmp_path):
     """ Create a configuration object with project and config directories
         in a temporary directory.
     """
     def _mk_config():
         (tmp_path / 'project').mkdir()
         (tmp_path / 'config').mkdir()
-        conf = Configuration(tmp_path / 'project', src_dir / 'settings')
+        conf = Configuration(tmp_path / 'project')
         conf.config_dir = tmp_path / 'config'
         return conf
 
index df6c4794178465db5f79558662ee99703a6bbcac..7bc91fd75f8e15c474eee7fa8d80b03e9942ef61 100644 (file)
@@ -21,7 +21,7 @@ def test_config(src_dir, tmp_path):
     """
     (tmp_path / 'project').mkdir()
     (tmp_path / 'config').mkdir()
-    conf = Configuration(tmp_path / 'project', src_dir / 'settings')
+    conf = Configuration(tmp_path / 'project')
     conf.config_dir = tmp_path / 'config'
     return conf
 
index 405262950b78319d2924274ad497f933b03490f2..314637460525e0e2f8aefac5e81b63a193b12514 100644 (file)
@@ -107,24 +107,18 @@ def table_factory(temp_db_cursor):
 
 
 @pytest.fixture
-def def_config(src_dir):
-    cfg = Configuration(None, src_dir / 'settings')
-    cfg.set_libdirs(module='.', osm2pgsql='.',
-                    php=src_dir / 'lib-php',
-                    sql=src_dir / 'lib-sql',
-                    data=src_dir / 'data')
+def def_config():
+    cfg = Configuration(None)
+    cfg.set_libdirs(module='.', osm2pgsql='.')
     return cfg
 
 
 @pytest.fixture
-def project_env(src_dir, tmp_path):
+def project_env(tmp_path):
     projdir = tmp_path / 'project'
     projdir.mkdir()
-    cfg = Configuration(projdir, src_dir / 'settings')
-    cfg.set_libdirs(module='.', osm2pgsql='.',
-                    php=src_dir / 'lib-php',
-                    sql=src_dir / 'lib-sql',
-                    data=src_dir / 'data')
+    cfg = Configuration(projdir)
+    cfg.set_libdirs(module='.', osm2pgsql='.')
     return cfg
 
 
@@ -214,9 +208,8 @@ def osmline_table(temp_db_with_extensions, table_factory):
 @pytest.fixture
 def sql_preprocessor_cfg(tmp_path, table_factory, temp_db_with_extensions):
     table_factory('country_name', 'partition INT', ((0, ), (1, ), (2, )))
-    cfg = Configuration(None, SRC_DIR.resolve() / 'settings')
-    cfg.set_libdirs(module='.', osm2pgsql='.', php=SRC_DIR / 'lib-php',
-                    sql=tmp_path, data=SRC_DIR / 'data')
+    cfg = Configuration(None)
+    cfg.set_libdirs(module='.', osm2pgsql='.', sql=tmp_path)
     return cfg
 
 
index 26ea92b2c787fb72b6c4a39e64e9646723907cd9..f73aec308404000e8fbab2f059b72ac5415dd73b 100644 (file)
@@ -12,31 +12,28 @@ import subprocess
 
 import pytest
 
+from nominatim.config import Configuration
 import nominatim.tools.exec_utils as exec_utils
+import nominatim.paths
 
 class TestRunLegacyScript:
 
     @pytest.fixture(autouse=True)
-    def setup_nominatim_env(self, tmp_path, def_config):
+    def setup_nominatim_env(self, tmp_path, monkeypatch):
         tmp_phplib_dir = tmp_path / 'phplib'
         tmp_phplib_dir.mkdir()
         (tmp_phplib_dir / 'admin').mkdir()
 
-        class _NominatimEnv:
-            config = def_config
-            phplib_dir = tmp_phplib_dir
-            data_dir = Path('data')
-            project_dir = Path('.')
-            sqllib_dir = Path('lib-sql')
-            config_dir = Path('settings')
-            module_dir = 'module'
-            osm2pgsql_path = 'osm2pgsql'
+        monkeypatch.setattr(nominatim.paths, 'PHPLIB_DIR', tmp_phplib_dir)
 
-        self.testenv = _NominatimEnv
+        self.phplib_dir = tmp_phplib_dir
+        self.config = Configuration(tmp_path)
+        self.config.set_libdirs(module='.', osm2pgsql='default_osm2pgsql',
+                                php=tmp_phplib_dir)
 
 
     def mk_script(self, code):
-        codefile = self.testenv.phplib_dir / 'admin' / 't.php'
+        codefile = self.phplib_dir / 'admin' / 't.php'
         codefile.write_text('<?php\n' + code + '\n')
 
         return 't.php'
@@ -46,25 +43,25 @@ class TestRunLegacyScript:
     def test_run_legacy_return_exit_code(self, return_code):
         fname = self.mk_script('exit({});'.format(return_code))
         assert return_code == \
-                 exec_utils.run_legacy_script(fname, nominatim_env=self.testenv)
+                 exec_utils.run_legacy_script(fname, config=self.config)
 
 
     def test_run_legacy_return_throw_on_fail(self):
         fname = self.mk_script('exit(11);')
         with pytest.raises(subprocess.CalledProcessError):
-            exec_utils.run_legacy_script(fname, nominatim_env=self.testenv,
+            exec_utils.run_legacy_script(fname, config=self.config,
                                          throw_on_fail=True)
 
 
     def test_run_legacy_return_dont_throw_on_success(self):
         fname = self.mk_script('exit(0);')
-        assert exec_utils.run_legacy_script(fname, nominatim_env=self.testenv,
+        assert exec_utils.run_legacy_script(fname, config=self.config,
                                             throw_on_fail=True) == 0
 
     def test_run_legacy_use_given_module_path(self):
         fname = self.mk_script("exit($_SERVER['NOMINATIM_DATABASE_MODULE_PATH'] == '' ? 0 : 23);")
 
-        assert exec_utils.run_legacy_script(fname, nominatim_env=self.testenv) == 0
+        assert exec_utils.run_legacy_script(fname, config=self.config) == 0
 
 
     def test_run_legacy_do_not_overwrite_module_path(self, monkeypatch):
@@ -72,13 +69,13 @@ class TestRunLegacyScript:
         fname = self.mk_script(
             "exit($_SERVER['NOMINATIM_DATABASE_MODULE_PATH'] == 'other' ? 0 : 1);")
 
-        assert exec_utils.run_legacy_script(fname, nominatim_env=self.testenv) == 0
+        assert exec_utils.run_legacy_script(fname, config=self.config) == 0
 
 
     def test_run_legacy_default_osm2pgsql_binary(self, monkeypatch):
-        fname = self.mk_script("exit($_SERVER['NOMINATIM_OSM2PGSQL_BINARY'] == 'osm2pgsql' ? 0 : 23);")
+        fname = self.mk_script("exit($_SERVER['NOMINATIM_OSM2PGSQL_BINARY'] == 'default_osm2pgsql' ? 0 : 23);")
 
-        assert exec_utils.run_legacy_script(fname, nominatim_env=self.testenv) == 0
+        assert exec_utils.run_legacy_script(fname, config=self.config) == 0
 
 
     def test_run_legacy_override_osm2pgsql_binary(self, monkeypatch):
@@ -86,7 +83,7 @@ class TestRunLegacyScript:
 
         fname = self.mk_script("exit($_SERVER['NOMINATIM_OSM2PGSQL_BINARY'] == 'somethingelse' ? 0 : 23);")
 
-        assert exec_utils.run_legacy_script(fname, nominatim_env=self.testenv) == 0
+        assert exec_utils.run_legacy_script(fname, config=self.config) == 0
 
 
 class TestRunApiScript: