Fixed an issue in the pyodbc connector such that a warning about pyodbc
"drivername" would be emitted when using a totally empty URL. Empty URLs
are normal when producing a non-connected dialect object or when using the
"creator" argument to create_engine(). The warning now only emits if the
driver name is missing but other parameters are still present.
Fixes: #5346
Change-Id: I0ee6f5fd5af7faca63bf0d7034410942f40834a8
--- /dev/null
+.. change::
+ :tags: bug, mssql, pyodbc
+ :tickets: 5346
+
+ Fixed an issue in the pyodbc connector such that a warning about pyodbc
+ "drivername" would be emitted when using a totally empty URL. Empty URLs
+ are normal when producing a non-connected dialect object or when using the
+ "creator" argument to create_engine(). The warning now only emits if the
+ driver name is missing but other parameters are still present.
connectors = []
driver = keys.pop("driver", self.pyodbc_driver_name)
- if driver is None:
+ if driver is None and keys:
+ # note if keys is empty, this is a totally blank URL
util.warn(
"No driver name specified; "
"this is expected by PyODBC when using "
connection,
)
+ def test_pyodbc_empty_url_no_warning(self):
+ dialect = pyodbc.dialect()
+ u = url.make_url("mssql+pyodbc://")
+
+ # no warning is emitted
+ dialect.create_connect_args(u)
+
def test_pyodbc_host_no_driver(self):
dialect = pyodbc.dialect()
u = url.make_url("mssql://username:password@hostspec/database")