From 23e088bccff02f18e4a27ef9dfc656c814695525 Mon Sep 17 00:00:00 2001 From: Federico Caselli Date: Sat, 6 Feb 2021 12:11:54 +0100 Subject: Detect non async driver on engine creation An error is raised when creating an async engine with an incompatible dbapi. Before the error was raised only when first using the engine. Change-Id: I977952b4c03ae51f568749ad744c545197bcd887 Reference: #5920 --- lib/sqlalchemy/ext/asyncio/engine.py | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'lib/sqlalchemy/ext') diff --git a/lib/sqlalchemy/ext/asyncio/engine.py b/lib/sqlalchemy/ext/asyncio/engine.py index aa7e60dfb..db95ab371 100644 --- a/lib/sqlalchemy/ext/asyncio/engine.py +++ b/lib/sqlalchemy/ext/asyncio/engine.py @@ -527,6 +527,11 @@ class AsyncEngine(ProxyComparable, AsyncConnectable): await self.conn.close() def __init__(self, sync_engine: Engine): + if not sync_engine.dialect.is_async: + raise exc.InvalidRequestError( + "The asyncio extension requires an async driver to be used. " + f"The loaded {sync_engine.dialect.driver!r} is not async." + ) self.sync_engine = self._proxied = sync_engine def begin(self): -- cgit v1.2.1