summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-10-07 12:43:27 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2014-10-07 12:43:27 -0400
commit2885f78e4e20c2ae8552594ac7f0231b1bee4aad (patch)
treebd06ea192635a3e3aec311490994687298cf41dd
parent5a10b6a455f9ad7be752469cbaa503857ae9fda2 (diff)
downloadsqlalchemy-2885f78e4e20c2ae8552594ac7f0231b1bee4aad.tar.gz
- adjustment for ref #3200 as we need an immutabledict() here so
that union() can be called, in the case of a dialect that uses execution options inside of initialize() (e.g. oursql)
-rw-r--r--lib/sqlalchemy/engine/strategies.py2
-rw-r--r--test/engine/test_execute.py12
2 files changed, 13 insertions, 1 deletions
diff --git a/lib/sqlalchemy/engine/strategies.py b/lib/sqlalchemy/engine/strategies.py
index 49438372b..398ef8df6 100644
--- a/lib/sqlalchemy/engine/strategies.py
+++ b/lib/sqlalchemy/engine/strategies.py
@@ -162,7 +162,7 @@ class DefaultEngineStrategy(EngineStrategy):
def first_connect(dbapi_connection, connection_record):
c = base.Connection(engine, connection=dbapi_connection,
_has_events=False)
- c._execution_options = {}
+ c._execution_options = util.immutabledict()
dialect.initialize(c)
event.listen(pool, 'first_connect', first_connect, once=True)
diff --git a/test/engine/test_execute.py b/test/engine/test_execute.py
index a80d157ed..e0bba0afa 100644
--- a/test/engine/test_execute.py
+++ b/test/engine/test_execute.py
@@ -487,6 +487,18 @@ class ExecuteTest(fixtures.TestBase):
conn.close()
@testing.requires.ad_hoc_engines
+ def test_dialect_init_uses_options(self):
+ eng = create_engine(testing.db.url)
+
+ def my_init(connection):
+ connection.execution_options(foo='bar').execute(select([1]))
+
+ with patch.object(eng.dialect, "initialize", my_init):
+ conn = eng.connect()
+ eq_(conn._execution_options, {})
+ conn.close()
+
+ @testing.requires.ad_hoc_engines
def test_generative_engine_event_dispatch_hasevents(self):
def l1(*arg, **kw):
pass