summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Vandenberg <jayvdb@gmail.com>2016-05-03 19:40:50 +0700
committerJohn Vandenberg <jayvdb@gmail.com>2016-05-05 15:10:34 +0700
commit510547a40bea6b427a741845dab7e4fc9b717086 (patch)
tree6376088e7818a01ea3afff1ba0fc28fbccfe5312
parent93b48e6aba6b1c20f525a0a22d58fc57ee4637f5 (diff)
downloadsqlalchemy-pr/271.tar.gz
Fix TypeError during cx_Oracle connectionpr/271
cx_Oracle connection parameters user, password and dsn must be either a string or NULL. When they are passed a Python None object, "TypeError: expecting string, unicode or buffer object" is raised.
-rw-r--r--lib/sqlalchemy/dialects/oracle/cx_oracle.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/sqlalchemy/dialects/oracle/cx_oracle.py b/lib/sqlalchemy/dialects/oracle/cx_oracle.py
index dede3b21a..dfceb3091 100644
--- a/lib/sqlalchemy/dialects/oracle/cx_oracle.py
+++ b/lib/sqlalchemy/dialects/oracle/cx_oracle.py
@@ -898,13 +898,17 @@ class OracleDialect_cx_oracle(OracleDialect):
dsn = url.host
opts = dict(
- user=url.username,
- password=url.password,
- dsn=dsn,
threaded=self.threaded,
twophase=self.allow_twophase,
)
+ if dsn is not None:
+ opts['dsn'] = dsn
+ if url.password is not None:
+ opts['password'] = url.password
+ if url.username is not None:
+ opts['user'] = url.username
+
if util.py2k:
if self._cx_oracle_with_unicode:
for k, v in opts.items():