diff options
author | mike bayer <mike_mp@zzzcomputing.com> | 2020-05-22 20:12:42 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@bbpush.zzzcomputing.com> | 2020-05-22 20:12:42 +0000 |
commit | 16fcbd3be2fc702bc022ff848b6e0f400d60f2f6 (patch) | |
tree | abe666862c1125132a2701f99c3cbf101a66d5a8 | |
parent | 88ae6a6cdd9f37d65ea212736f1229bb62d677a9 (diff) | |
parent | 29534cf13939c7f7fe59399f12d50df2fcab7a38 (diff) | |
download | sqlalchemy-16fcbd3be2fc702bc022ff848b6e0f400d60f2f6.tar.gz |
Merge "Don't emit pyodbc "no driver" warning for empty URL"
-rw-r--r-- | doc/build/changelog/unreleased_13/5346.rst | 9 | ||||
-rw-r--r-- | lib/sqlalchemy/connectors/pyodbc.py | 3 | ||||
-rw-r--r-- | test/dialect/mssql/test_engine.py | 7 |
3 files changed, 18 insertions, 1 deletions
diff --git a/doc/build/changelog/unreleased_13/5346.rst b/doc/build/changelog/unreleased_13/5346.rst new file mode 100644 index 000000000..7b4e0fb4e --- /dev/null +++ b/doc/build/changelog/unreleased_13/5346.rst @@ -0,0 +1,9 @@ +.. 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. diff --git a/lib/sqlalchemy/connectors/pyodbc.py b/lib/sqlalchemy/connectors/pyodbc.py index cd79a3ada..df1b2afdb 100644 --- a/lib/sqlalchemy/connectors/pyodbc.py +++ b/lib/sqlalchemy/connectors/pyodbc.py @@ -75,7 +75,8 @@ class PyODBCConnector(Connector): 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 " diff --git a/test/dialect/mssql/test_engine.py b/test/dialect/mssql/test_engine.py index 00babf8ce..0dea2688a 100644 --- a/test/dialect/mssql/test_engine.py +++ b/test/dialect/mssql/test_engine.py @@ -66,6 +66,13 @@ class ParseConnectTest(fixtures.TestBase): 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") |