diff options
| author | Federico Caselli <cfederico87@gmail.com> | 2022-06-20 20:41:48 +0200 |
|---|---|---|
| committer | Federico Caselli <cfederico87@gmail.com> | 2022-06-20 20:41:48 +0200 |
| commit | e13e13421681768c300eab192cf2b150db9edaa6 (patch) | |
| tree | 58346afef14358439a2b91b50c52c7d8dc4d2c19 /lib/sqlalchemy/dialects | |
| parent | 5785b59482498996835dc148fa5f77db36a0705a (diff) | |
| download | sqlalchemy-e13e13421681768c300eab192cf2b150db9edaa6.tar.gz | |
Add ability to test using thick mode with oracledb
Change-Id: Iee14750ba20422931bde4d61eaa570af482c7d8b
References: #8147
Diffstat (limited to 'lib/sqlalchemy/dialects')
| -rw-r--r-- | lib/sqlalchemy/dialects/oracle/oracledb.py | 2 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/oracle/provision.py | 11 |
2 files changed, 12 insertions, 1 deletions
diff --git a/lib/sqlalchemy/dialects/oracle/oracledb.py b/lib/sqlalchemy/dialects/oracle/oracledb.py index bbe801cd4..67c5b42a5 100644 --- a/lib/sqlalchemy/dialects/oracle/oracledb.py +++ b/lib/sqlalchemy/dialects/oracle/oracledb.py @@ -76,7 +76,7 @@ class OracleDialect_oracledb(_OracleDialect_cx_oracle): **kwargs, ) - if thick_mode is not None: + if self.dbapi is not None and thick_mode is not None: kw = thick_mode if isinstance(thick_mode, dict) else {} self.dbapi.init_oracle_client(**kw) diff --git a/lib/sqlalchemy/dialects/oracle/provision.py b/lib/sqlalchemy/dialects/oracle/provision.py index 75b7a7aa9..6644c6eab 100644 --- a/lib/sqlalchemy/dialects/oracle/provision.py +++ b/lib/sqlalchemy/dialects/oracle/provision.py @@ -16,6 +16,7 @@ from ...testing.provision import run_reap_dbs from ...testing.provision import set_default_schema_on_connection from ...testing.provision import stop_test_class_outside_fixtures from ...testing.provision import temp_table_keyword_args +from ...testing.provision import update_db_opts @create_db.for_db("oracle") @@ -204,3 +205,13 @@ def _oracle_set_default_schema_on_connection( cursor = dbapi_connection.cursor() cursor.execute("ALTER SESSION SET CURRENT_SCHEMA=%s" % schema_name) cursor.close() + + +@update_db_opts.for_db("oracle") +def _update_db_opts(db_url, db_opts, options): + """Set database options (db_opts) for a test database that we created.""" + if ( + options.oracledb_thick_mode + and sa_url.make_url(db_url).get_driver_name() == "oracledb" + ): + db_opts["thick_mode"] = True |
