]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Implemented recreate() for StaticPool
authorJason Kirtland <jek@discorporate.us>
Fri, 10 Jul 2009 21:48:45 +0000 (21:48 +0000)
committerJason Kirtland <jek@discorporate.us>
Fri, 10 Jul 2009 21:48:45 +0000 (21:48 +0000)
CHANGES
lib/sqlalchemy/pool.py
test/engine/test_pool.py

diff --git a/CHANGES b/CHANGES
index 0d16bcf8483748a962c4811b11e2529387817990..c4ec26de630d0d145992e9cd6e68c36fe19cdb93 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -84,7 +84,11 @@ CHANGES
       incompatible change for any application that may have been
       using this feature, however the feature has never been
       documented.
-    
+
+- engine/pool
+   - Implemented recreate() for StaticPool.
+
+
 0.5.4p2
 =======
 
index 2eabd857272a30eb24b3901098e90a52510d3e76..c4e1af20cf3fb27786d6154f2c7913e32c508315 100644 (file)
@@ -706,15 +706,16 @@ class NullPool(Pool):
 
     def dispose(self):
         pass
-        
+
+
 class StaticPool(Pool):
     """A Pool of exactly one connection, used for all requests.
-    
+
     Reconnect-related functions such as ``recycle`` and connection
     invalidation (which is also used to support auto-reconnect) are not
     currently supported by this Pool implementation but may be implemented
     in a future release.
-    
+
     """
 
     def __init__(self, creator, **params):
@@ -754,6 +755,15 @@ class StaticPool(Pool):
         self._conn.close()
         self._conn = None
 
+    def recreate(self):
+        self.log("Pool recreating")
+        return self.__class__(creator=self._creator,
+                              recycle=self._recycle,
+                              use_threadlocal=self._use_threadlocal,
+                              reset_on_return=self._reset_on_return,
+                              echo=self.echo,
+                              listeners=self.listeners)
+
     def create_connection(self):
         return self._conn
 
index 43a0fc38b790fc5893ef15497874437559820322..d135ad337acc70452024450d6b2640b8e4cfce02 100644 (file)
@@ -659,6 +659,12 @@ class NullPoolTest(PoolTestBase):
 
         c1 = p.connect()
         assert c1.connection.id != c_id
-    
-        
-    
+
+
+class StaticPoolTest(PoolTestBase):
+    def test_recreate(self):
+        dbapi = MockDBAPI()
+        creator = lambda: dbapi.connect('foo.db')
+        p = pool.StaticPool(creator)
+        p2 = p.recreate()
+        assert p._creator is p2._creator