Skip to content

Commit b78130e

Browse files
authored
fix: table reflection with async db url - DIA-51295 (#82)
1 parent fad7a00 commit b78130e

4 files changed

Lines changed: 14 additions & 4 deletions

File tree

fastapi_sqla/_pytest_plugin.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,15 @@ async def patch_new_engine(async_sqlalchemy_url, async_sqla_connection, request)
178178
yield new_engine
179179

180180
@fixture
181-
async def async_session(async_sqla_connection, sqla_reflection, patch_new_engine):
181+
async def async_sqla_reflection(sqla_modules, async_sqla_connection):
182+
from fastapi_sqla import Base
183+
184+
await async_sqla_connection.run_sync(lambda conn: Base.prepare(conn.engine))
185+
186+
@fixture
187+
async def async_session(
188+
async_sqla_connection, async_sqla_reflection, patch_new_engine
189+
):
182190
from fastapi_sqla.asyncio_support import _AsyncSession
183191

184192
session = _AsyncSession(bind=async_sqla_connection)

fastapi_sqla/asyncio_support.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ async def startup():
4545
)
4646
raise
4747

48-
Base.prepare(engine.engine)
48+
async with engine.connect() as connection:
49+
await connection.run_sync(lambda conn: Base.prepare(conn.engine))
50+
4951
_AsyncSession.configure(bind=engine, expire_on_commit=False)
5052
logger.info("startup", async_engine=engine)
5153

tests/test_middleware.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ async def a_middleware(request, call_next):
8989

9090

9191
@fixture
92-
async def client(app):
92+
async def client(app, mock_middleware):
9393

9494
async with LifespanManager(app):
9595
transport = httpx.ASGITransport(app=app, raise_app_exceptions=False)

tests/test_startup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,6 @@ async def test_async_startup_with_aws_rds_iam_enabled(
126126

127127
await startup()
128128

129-
boto_client_mock.generate_db_auth_token.assert_called_once_with(
129+
boto_client_mock.generate_db_auth_token.assert_called_with(
130130
DBHostname=db_host, Port=5432, DBUsername=db_user
131131
)

0 commit comments

Comments
 (0)