+
+
+ 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):
+ 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)
+
+ return response.text, response.status_code
+
+ return _request
+
+
+ def create_api_request_func_falcon(self):
+ import nominatim.server.falcon.server
+ import falcon.testing
+
+ async def _request(endpoint, params, project_dir, environ):
+ 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)
+
+ return response.text, response.status_code
+
+ return _request
+
+
+