@@ -81,19 +81,7 @@ def sync_engine(postgres_service: str) -> Iterable[sqlalchemy.engine.Engine]:
8181
8282
8383@pytest .fixture
84- def make_engine (
85- postgres_service : str ,
86- ) -> Callable [[bool ], Awaitable [Engine ] | sqlalchemy .engine .Engine ]:
87- dsn = postgres_service
88-
89- def _make (is_async = True ) -> Awaitable [Engine ] | sqlalchemy .engine .Engine :
90- return aiopg .sa .create_engine (dsn ) if is_async else sa .create_engine (dsn )
91-
92- return _make
93-
94-
95- @pytest .fixture
96- def make_asyncpg_engine (postgres_service : str ) -> Callable [[bool ], AsyncEngine ]:
84+ def _make_asyncpg_engine (postgres_service : str ) -> Callable [[bool ], AsyncEngine ]:
9785 # NOTE: users is responsible of `await engine.dispose()`
9886 dsn = postgres_service .replace ("postgresql://" , "postgresql+asyncpg://" )
9987 minsize = 1
@@ -178,13 +166,15 @@ def pg_sa_engine(
178166
179167@pytest .fixture
180168async def aiopg_engine (
181- pg_sa_engine : sqlalchemy .engine .Engine , make_engine : Callable
169+ pg_sa_engine : sqlalchemy .engine .Engine ,
170+ postgres_service : str ,
182171) -> AsyncIterator [Engine ]:
183172 """
184173 Return an aiopg.sa engine connected to a responsive and migrated pg database
185174 """
186-
187- aiopg_sa_engine = await make_engine (is_async = True )
175+ # first start sync
176+ assert pg_sa_engine .url .database
177+ assert postgres_service .endswith (pg_sa_engine .url .database )
188178
189179 warnings .warn (
190180 "The 'aiopg_engine' is deprecated since we are replacing `aiopg` library by `sqlalchemy.ext.asyncio`."
@@ -194,12 +184,8 @@ async def aiopg_engine(
194184 stacklevel = 2 ,
195185 )
196186
197- yield aiopg_sa_engine
198-
199- # closes async-engine connections and terminates
200- aiopg_sa_engine .close ()
201- await aiopg_sa_engine .wait_closed ()
202- aiopg_sa_engine .terminate ()
187+ async with aiopg .sa .create_engine (dsn = postgres_service ) as aiopg_sa_engine :
188+ yield aiopg_sa_engine
203189
204190
205191@pytest .fixture
@@ -213,14 +199,14 @@ async def connection(aiopg_engine: Engine) -> AsyncIterator[SAConnection]:
213199async def asyncpg_engine ( # <-- WE SHOULD USE THIS ONE
214200 is_pdb_enabled : bool ,
215201 pg_sa_engine : sqlalchemy .engine .Engine ,
216- make_asyncpg_engine : Callable [[bool ], AsyncEngine ],
202+ _make_asyncpg_engine : Callable [[bool ], AsyncEngine ],
217203) -> AsyncIterator [AsyncEngine ]:
218204
219205 assert (
220206 pg_sa_engine
221207 ), "Ensures pg db up, responsive, init (w/ tables) and/or migrated"
222208
223- _apg_engine = make_asyncpg_engine (is_pdb_enabled )
209+ _apg_engine = _make_asyncpg_engine (is_pdb_enabled )
224210
225211 yield _apg_engine
226212
@@ -233,9 +219,7 @@ async def asyncpg_engine( # <-- WE SHOULD USE THIS ONE
233219
234220
235221@pytest .fixture
236- def create_fake_group (
237- make_engine : Callable [..., Awaitable [Engine ] | sqlalchemy .engine .Engine ]
238- ) -> Iterator [Callable ]:
222+ def create_fake_group (sync_engine : sqlalchemy .engine .Engine ) -> Iterator [Callable ]:
239223 """factory to create standard group"""
240224 created_ids = []
241225
@@ -254,16 +238,13 @@ async def _creator(conn: SAConnection, **overrides) -> RowProxy:
254238
255239 yield _creator
256240
257- sync_engine = make_engine (is_async = False )
258241 assert isinstance (sync_engine , sqlalchemy .engine .Engine )
259242 with sync_engine .begin () as conn :
260243 conn .execute (sa .delete (groups ).where (groups .c .gid .in_ (created_ids )))
261244
262245
263246@pytest .fixture
264- def create_fake_user (
265- make_engine : Callable [..., Awaitable [Engine ] | sqlalchemy .engine .Engine ]
266- ) -> Iterator [Callable ]:
247+ def create_fake_user (sync_engine : sqlalchemy .engine .Engine ) -> Iterator [Callable ]:
267248 """factory to create a user w/ or w/o a standard group"""
268249
269250 created_ids = []
@@ -294,7 +275,6 @@ async def _creator(conn, group: RowProxy | None = None, **overrides) -> RowProxy
294275
295276 yield _creator
296277
297- sync_engine = make_engine (is_async = False )
298278 assert isinstance (sync_engine , sqlalchemy .engine .Engine )
299279 with sync_engine .begin () as conn :
300280 conn .execute (users .delete ().where (users .c .id .in_ (created_ids )))
0 commit comments