]> git.openstreetmap.org Git - nominatim.git/blobdiff - test/bdd/steps/nominatim_environment.py
Merge pull request #3233 from lonvia/support-for-sqlite
[nominatim.git] / test / bdd / steps / nominatim_environment.py
index 158b7974dfcf7c96389235563bccf97bb4d2c657..11dede3049854a323388fceae13fa61b428fb689 100644 (file)
@@ -9,9 +9,6 @@ import importlib
 import sys
 import tempfile
 
-from asgi_lifespan import LifespanManager
-import httpx
-
 import psycopg2
 import psycopg2.extras
 
@@ -89,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:
@@ -200,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
 
@@ -308,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)
 
 
@@ -337,26 +339,16 @@ class NominatimEnvironment:
 
     def create_api_request_func_starlette(self):
         import nominatim.server.starlette.server
+        from asgi_lifespan import LifespanManager
+        import httpx
 
-        async def _request(endpoint, params, project_dir, environ):
+        async def _request(endpoint, params, project_dir, environ, http_headers):
             app = nominatim.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:
-                    response = await client.get(f"/{endpoint}", params=params)
-
-            return response.text, response.status_code
-
-        return _request
-
-
-    def create_api_request_func_sanic(self):
-        import nominatim.server.sanic.server
-
-        async def _request(endpoint, params, project_dir, environ):
-            app = nominatim.server.sanic.server.get_application(project_dir, environ)
-
-            _, response = await app.asgi_client.get(f"/{endpoint}", params=params)
+                    response = await client.get(f"/{endpoint}", params=params,
+                                                headers=http_headers)
 
             return response.text, response.status_code
 
@@ -367,11 +359,12 @@ class NominatimEnvironment:
         import nominatim.server.falcon.server
         import falcon.testing
 
-        async def _request(endpoint, params, project_dir, environ):
+        async def _request(endpoint, params, project_dir, environ, http_headers):
             app = nominatim.server.falcon.server.get_application(project_dir, environ)
 
             async with falcon.testing.ASGIConductor(app) as conductor:
-                response = await conductor.get(f"/{endpoint}", params=params)
+                response = await conductor.get(f"/{endpoint}", params=params,
+                                               headers=http_headers)
 
             return response.text, response.status_code