From f9bb6c2a54ee10270a0661f938ac99b1dccfd8ef Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Mon, 27 May 2013 17:06:05 -0400 Subject: [PATCH] - additional oracle fixes. cx_oracle under py3k is complaining about tuples to executemany(), so just unconditionally turn this into a list - this one test segfaults only on py3k + cx_oracle --- lib/sqlalchemy/dialects/oracle/cx_oracle.py | 5 +++++ test/engine/test_reconnect.py | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/sqlalchemy/dialects/oracle/cx_oracle.py b/lib/sqlalchemy/dialects/oracle/cx_oracle.py index 5b0c3edd73..e013799dbd 100644 --- a/lib/sqlalchemy/dialects/oracle/cx_oracle.py +++ b/lib/sqlalchemy/dialects/oracle/cx_oracle.py @@ -819,6 +819,11 @@ class OracleDialect_cx_oracle(OracleDialect): id = random.randint(0, 2 ** 128) return (0x1234, "%032x" % id, "%032x" % 9) + def do_executemany(self, cursor, statement, parameters, context=None): + if isinstance(parameters, tuple): + parameters = list(parameters) + cursor.executemany(statement, parameters) + def do_begin_twophase(self, connection, xid): connection.connection.begin(*xid) diff --git a/test/engine/test_reconnect.py b/test/engine/test_reconnect.py index 3dec01c697..ee3ff14599 100644 --- a/test/engine/test_reconnect.py +++ b/test/engine/test_reconnect.py @@ -7,7 +7,7 @@ import sqlalchemy as tsa from sqlalchemy import testing from sqlalchemy.testing import engines from sqlalchemy.testing.util import gc_collect -from sqlalchemy import exc +from sqlalchemy import exc, util from sqlalchemy.testing import fixtures from sqlalchemy.testing.engines import testing_engine @@ -464,6 +464,9 @@ class RealReconnectTest(fixtures.TestBase): conn.invalidate() conn.invalidate() + @testing.skip_if( + [lambda: util.py3k, "oracle+cx_oracle"], + "Crashes on py3k+cx_oracle") def test_explode_in_initializer(self): engine = engines.testing_engine() def broken_initialize(connection): -- 2.47.3