summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDaniel Lister <dan.lister@gmail.com>2019-01-24 16:35:16 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2019-01-25 11:19:03 -0500
commit2bbd3ac1fb6049fc7195821798f02ce7fa56a7e9 (patch)
treeba97d2cda12bb1d7994ae7d58b492b6b803db208 /test
parenta11a5f5af6b0c76d6f07a7ed3dd8eff7dda95ed6 (diff)
downloadsqlalchemy-2bbd3ac1fb6049fc7195821798f02ce7fa56a7e9.tar.gz
Add getters for all execution_options
Added accessors for execution options to Core and ORM, via :meth:`.Query.get_execution_options`, :meth:`.Connection.get_execution_options`, :meth:`.Engine.get_execution_options`, and :meth:`.Executable.get_execution_options`. PR courtesy Daniel Lister. Fixes: #4406 Closes: #4465 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/4465 Pull-request-sha: 9674688bb5e80471a6a421bac06f995c2e64f8f7 Change-Id: I93ba51d7a2d687e255edd6938db15615e56dd237
Diffstat (limited to 'test')
-rw-r--r--test/engine/test_execute.py15
-rw-r--r--test/orm/test_query.py18
-rw-r--r--test/sql/test_generative.py6
3 files changed, 31 insertions, 8 deletions
diff --git a/test/engine/test_execute.py b/test/engine/test_execute.py
index 061dae005..ad9144a38 100644
--- a/test/engine/test_execute.py
+++ b/test/engine/test_execute.py
@@ -1272,6 +1272,21 @@ class ExecutionOptionsTest(fixtures.TestBase):
c2_branch = c2.connect()
eq_(c2_branch._execution_options, {"foo": "bar"})
+ def test_get_engine_execution_options(self):
+ engine = testing_engine("sqlite://")
+ engine.dialect = Mock()
+ e2 = engine.execution_options(foo="bar")
+
+ eq_(e2.get_execution_options(), {"foo": "bar"})
+
+ def test_get_connection_execution_options(self):
+ engine = testing_engine("sqlite://", options=dict(_initialize=False))
+ engine.dialect = Mock()
+ conn = engine.connect()
+ c = conn.execution_options(foo="bar")
+
+ eq_(c.get_execution_options(), {"foo": "bar"})
+
class EngineEventsTest(fixtures.TestBase):
__requires__ = ("ad_hoc_engines",)
diff --git a/test/orm/test_query.py b/test/orm/test_query.py
index 0c8c27bb2..4ec602e43 100644
--- a/test/orm/test_query.py
+++ b/test/orm/test_query.py
@@ -5205,17 +5205,25 @@ class ExecutionOptionsTest(QueryTest):
sess = create_session(bind=testing.db, autocommit=False)
q1 = sess.query(User)
- assert q1._execution_options == dict()
+ eq_(q1._execution_options, dict())
q2 = q1.execution_options(foo="bar", stream_results=True)
# q1's options should be unchanged.
- assert q1._execution_options == dict()
+ eq_(q1._execution_options, dict())
# q2 should have them set.
- assert q2._execution_options == dict(foo="bar", stream_results=True)
+ eq_(q2._execution_options, dict(foo="bar", stream_results=True))
q3 = q2.execution_options(foo="not bar", answer=42)
- assert q2._execution_options == dict(foo="bar", stream_results=True)
+ eq_(q2._execution_options, dict(foo="bar", stream_results=True))
q3_options = dict(foo="not bar", stream_results=True, answer=42)
- assert q3._execution_options == q3_options
+ eq_(q3._execution_options, q3_options)
+
+ def test_get_options(self):
+ User = self.classes.User
+
+ sess = create_session(bind=testing.db, autocommit=False)
+
+ q = sess.query(User).execution_options(foo="bar", stream_results=True)
+ eq_(q.get_execution_options(), dict(foo="bar", stream_results=True))
def test_options_in_connection(self):
User = self.classes.User
diff --git a/test/sql/test_generative.py b/test/sql/test_generative.py
index f030f1d9c..ccb5b15ea 100644
--- a/test/sql/test_generative.py
+++ b/test/sql/test_generative.py
@@ -1769,10 +1769,10 @@ class SelectTest(fixtures.TestBase, AssertsCompiledSQL):
s2 = s.execution_options(bar="baz")
s3 = s.execution_options(foo="not bar")
# The original select should not be modified.
- assert s._execution_options == dict(foo="bar")
+ eq_(s.get_execution_options(), dict(foo="bar"))
# s2 should have its execution_options based on s, though.
- assert s2._execution_options == dict(foo="bar", bar="baz")
- assert s3._execution_options == dict(foo="not bar")
+ eq_(s2.get_execution_options(), dict(foo="bar", bar="baz"))
+ eq_(s3.get_execution_options(), dict(foo="not bar"))
def test_invalid_options(self):
assert_raises(