diff options
| author | Daniel Lister <dan.lister@gmail.com> | 2019-01-24 16:35:16 -0500 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2019-01-25 11:19:03 -0500 |
| commit | 2bbd3ac1fb6049fc7195821798f02ce7fa56a7e9 (patch) | |
| tree | ba97d2cda12bb1d7994ae7d58b492b6b803db208 /test | |
| parent | a11a5f5af6b0c76d6f07a7ed3dd8eff7dda95ed6 (diff) | |
| download | sqlalchemy-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.py | 15 | ||||
| -rw-r--r-- | test/orm/test_query.py | 18 | ||||
| -rw-r--r-- | test/sql/test_generative.py | 6 |
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( |
