X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/0c65289a80fb376b9d7e53653e16cef6a8fa781e..b63633857ed4c9af7af6f35054569dc79c6cc5a0:/test/bdd/steps/nominatim_environment.py?ds=sidebyside diff --git a/test/bdd/steps/nominatim_environment.py b/test/bdd/steps/nominatim_environment.py index 64b62aba..dfbbee28 100644 --- a/test/bdd/steps/nominatim_environment.py +++ b/test/bdd/steps/nominatim_environment.py @@ -1,8 +1,8 @@ -# SPDX-License-Identifier: GPL-2.0-only +# SPDX-License-Identifier: GPL-3.0-or-later # # This file is part of Nominatim. (https://nominatim.org) # -# Copyright (C) 2022 by the Nominatim developer community. +# Copyright (C) 2024 by the Nominatim developer community. # For a full list of authors see the git log. from pathlib import Path import importlib @@ -12,13 +12,13 @@ import tempfile import psycopg2 import psycopg2.extras -sys.path.insert(1, str((Path(__file__) / '..' / '..' / '..' / '..').resolve())) +sys.path.insert(1, str((Path(__file__) / '..' / '..' / '..' / '..'/ 'src').resolve())) -from nominatim import cli -from nominatim.config import Configuration -from nominatim.db.connection import Connection -from nominatim.tools import refresh -from nominatim.tokenizer import factory as tokenizer_factory +from nominatim_db import cli +from nominatim_db.config import Configuration +from nominatim_db.db.connection import Connection +from nominatim_db.tools import refresh +from nominatim_db.tokenizer import factory as tokenizer_factory from steps.utils import run_script class NominatimEnvironment: @@ -86,7 +86,10 @@ class NominatimEnvironment: be picked up by dotenv and creates a project directory with the appropriate website scripts. """ - dsn = 'pgsql:dbname={}'.format(dbname) + if dbname.startswith('sqlite:'): + dsn = 'sqlite:dbname={}'.format(dbname[7:]) + else: + dsn = 'pgsql:dbname={}'.format(dbname) if self.db_host: dsn += ';host=' + self.db_host if self.db_port: @@ -197,6 +200,9 @@ class NominatimEnvironment: """ self.write_nominatim_config(self.api_test_db) + if self.api_test_db.startswith('sqlite:'): + return + if not self.api_db_done: self.api_db_done = True @@ -264,8 +270,8 @@ class NominatimEnvironment: self.db_drop_database(self.test_db) def _reuse_or_drop_db(self, name): - """ Check for the existance of the given DB. If reuse is enabled, - then the function checks for existance and returns True if the + """ Check for the existence of the given DB. If reuse is enabled, + then the function checks for existnce and returns True if the database is already there. Otherwise an existing database is dropped and always false returned. """ @@ -305,7 +311,6 @@ class NominatimEnvironment: cli.nominatim(module_dir='', osm2pgsql_path=str(self.build_dir / 'osm2pgsql' / 'osm2pgsql'), cli_args=cmdline, - phpcgi_path='', environ=self.test_env) @@ -333,12 +338,12 @@ class NominatimEnvironment: def create_api_request_func_starlette(self): - import nominatim.server.starlette.server + import nominatim_api.server.starlette.server from asgi_lifespan import LifespanManager import httpx async def _request(endpoint, params, project_dir, environ, http_headers): - app = nominatim.server.starlette.server.get_application(project_dir, environ) + app = nominatim_api.server.starlette.server.get_application(project_dir, environ) async with LifespanManager(app): async with httpx.AsyncClient(app=app, base_url="http://nominatim.test") as client: @@ -350,26 +355,12 @@ class NominatimEnvironment: return _request - def create_api_request_func_sanic(self): - import nominatim.server.sanic.server - - async def _request(endpoint, params, project_dir, environ, http_headers): - app = nominatim.server.sanic.server.get_application(project_dir, environ) - - _, response = await app.asgi_client.get(f"/{endpoint}", params=params, - headers=http_headers) - - return response.text, response.status_code - - return _request - - def create_api_request_func_falcon(self): - import nominatim.server.falcon.server + import nominatim_api.server.falcon.server import falcon.testing async def _request(endpoint, params, project_dir, environ, http_headers): - app = nominatim.server.falcon.server.get_application(project_dir, environ) + app = nominatim_api.server.falcon.server.get_application(project_dir, environ) async with falcon.testing.ASGIConductor(app) as conductor: response = await conductor.get(f"/{endpoint}", params=params,