17
17
from sqlalchemy .ext .asyncio import async_sessionmaker
18
18
19
19
from fastapi_app import create_app
20
+ from fastapi_app .openai_clients import create_openai_embed_client
20
21
from fastapi_app .postgres_engine import create_postgres_engine_from_env
21
22
from fastapi_app .setup_postgres_database import create_db_schema
22
23
from fastapi_app .setup_postgres_seeddata import seed_data
@@ -235,7 +236,7 @@ async def test_client(app, mock_default_azure_credential, mock_openai_embedding,
235
236
236
237
237
238
@pytest_asyncio .fixture (scope = "function" )
238
- async def db_session ():
239
+ async def db_session (mock_session_env , mock_default_azure_credential ):
239
240
"""Create a new database session with a rollback at the end of the test."""
240
241
engine = await create_postgres_engine_from_env ()
241
242
async_sesion = async_sessionmaker (autocommit = False , autoflush = False , bind = engine )
@@ -245,3 +246,18 @@ async def db_session():
245
246
await session .rollback ()
246
247
await session .close ()
247
248
await engine .dispose ()
249
+
250
+
251
+ @pytest_asyncio .fixture (scope = "function" )
252
+ async def postgres_searcher (mock_session_env , mock_default_azure_credential , db_session , mock_openai_embedding ):
253
+ from fastapi_app .postgres_searcher import PostgresSearcher
254
+
255
+ openai_embed_client = await create_openai_embed_client (mock_default_azure_credential )
256
+
257
+ yield PostgresSearcher (
258
+ db_session = db_session ,
259
+ openai_embed_client = openai_embed_client ,
260
+ embed_deployment = "text-embedding-ada-002" ,
261
+ embed_model = "text-embedding-ada-002" ,
262
+ embed_dimensions = 1536 ,
263
+ )
0 commit comments