]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
dont write dupe idents w different drivers in the idents file
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 20 Oct 2023 17:31:15 +0000 (13:31 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 20 Oct 2023 17:31:15 +0000 (13:31 -0400)
Change-Id: I474b40327fcc40a8a6eb4c537a4b80f0eea37162

lib/sqlalchemy/testing/plugin/plugin_base.py

index 563d8f68c2ed9d9e352db01b55069b35e7d958fa..585f6bac3cd69ab1214a75cf1b81f43dd343b98e 100644 (file)
@@ -420,6 +420,7 @@ def _engine_uri(options, file_config):
     from sqlalchemy import testing
     from sqlalchemy.testing import config
     from sqlalchemy.testing import provision
+    from sqlalchemy.engine import url as sa_url
 
     if options.dburi:
         db_urls = list(options.dburi)
@@ -444,18 +445,19 @@ def _engine_uri(options, file_config):
 
     config._current = None
 
-    expanded_urls = list(provision.generate_db_urls(db_urls, extra_drivers))
-
-    for db_url in expanded_urls:
-        log.info("Adding database URL: %s", db_url)
-
-        if options.write_idents and provision.FOLLOWER_IDENT:
+    if options.write_idents and provision.FOLLOWER_IDENT:
+        for db_url in [sa_url.make_url(db_url) for db_url in db_urls]:
             with open(options.write_idents, "a") as file_:
                 file_.write(
                     f"{provision.FOLLOWER_IDENT} "
                     f"{db_url.render_as_string(hide_password=False)}\n"
                 )
 
+    expanded_urls = list(provision.generate_db_urls(db_urls, extra_drivers))
+
+    for db_url in expanded_urls:
+        log.info("Adding database URL: %s", db_url)
+
         cfg = provision.setup_config(
             db_url, options, file_config, provision.FOLLOWER_IDENT
         )