]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- Added the string value ``"none"`` to those accepted by the
authorMike Bayer <mike_mp@zzzcomputing.com>
Tue, 21 Apr 2015 14:04:02 +0000 (10:04 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Tue, 21 Apr 2015 14:04:48 +0000 (10:04 -0400)
:paramref:`.Pool.reset_on_return` parameter as a synonym for ``None``,
so that string values can be used for all settings, allowing
.ini file utilities like :func:`.engine_from_config` to be usable
without issue.
fixes #3375

(cherry picked from commit c2e3002503242331fc8f2b314e0d4f3c65de9d73)

doc/build/changelog/changelog_09.rst
lib/sqlalchemy/pool.py
test/engine/test_parseconnect.py

index 7960da626e12f32196645517cc2e787a3d06ef9e..2f2f5926356c6ece45499f1901d5114e42a3b1cd 100644 (file)
 .. changelog::
     :version: 0.9.10
 
+    .. change::
+        :tags: bug, engine
+        :tickets: 3375
+        :versions: 1.0.1
+
+        Added the string value ``"none"`` to those accepted by the
+        :paramref:`.Pool.reset_on_return` parameter as a synonym for ``None``,
+        so that string values can be used for all settings, allowing
+        utilities like :func:`.engine_from_config` to be usable without
+        issue.
+
     .. change::
         :tags: bug, sql
         :tickets: 3362
index 206179e674788a69f704d269dc189b2b6c2f946d..65ef5e42bdb5df52afe9ed89c248b9dde7bf22e5 100644 (file)
@@ -186,6 +186,10 @@ class Pool(log.Identified):
             database that supports transactions,
             as it will lead to deadlocks and stale
             state.
+          * ``"none"`` - same as ``None``
+
+            .. versionadded:: 0.9.10
+
           * ``False`` - same as None, this is here for
             backwards compatibility.
 
@@ -220,7 +224,7 @@ class Pool(log.Identified):
         self._use_threadlocal = use_threadlocal
         if reset_on_return in ('rollback', True, reset_rollback):
             self._reset_on_return = reset_rollback
-        elif reset_on_return in (None, False, reset_none):
+        elif reset_on_return in ('none', None, False, reset_none):
             self._reset_on_return = reset_none
         elif reset_on_return in ('commit', reset_commit):
             self._reset_on_return = reset_commit
index d8f202f99059be2dfef9ea87121843667790200f..70cf04cab165509203a8cc4044d9ed3535043dfc 100644 (file)
@@ -136,6 +136,21 @@ class CreateEngineTest(fixtures.TestBase):
                             'z=somevalue')
         assert e.echo is True
 
+    def test_pool_reset_on_return_from_config(self):
+        dbapi = mock_dbapi
+
+        for value, expected in [
+            ("rollback", pool.reset_rollback),
+            ("commit", pool.reset_commit),
+            ("none", pool.reset_none)
+        ]:
+            config = {
+                'sqlalchemy.url': 'postgresql://scott:tiger@somehost/test',
+                'sqlalchemy.pool_reset_on_return': value}
+
+            e = engine_from_config(config, module=dbapi, _initialize=False)
+            eq_(e.pool._reset_on_return, expected)
+
     def test_engine_from_config_custom(self):
         from sqlalchemy import util
         from sqlalchemy.dialects import registry