]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- restore the old behavior of the connection pool replacing itself just
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 22 Mar 2014 23:02:37 +0000 (19:02 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 22 Mar 2014 23:02:37 +0000 (19:02 -0400)
within userland engine.dispose(); as some SQLA tests already failed when the replace step
was removed, due to those conns still being referenced, it's likely this will
create surprises for all those users that incorrectly use dispose()
and it's not really worth dealing with.  This doesn't affect the change
we made for ref: #2985.

lib/sqlalchemy/engine/base.py
test/engine/test_execute.py

index 2cad2a09498185c56ae49846b870e9916709214c..4a8719c6b60cbe49ce1425c6564d6c0089ff0670 100644 (file)
@@ -1502,6 +1502,7 @@ class Engine(Connectable, log.Identified):
 
         """
         self.pool.dispose()
+        self.pool = self.pool.recreate()
 
     def _execute_default(self, default):
         with self.contextual_connect() as conn:
index 6efcdcb89ca9ea82becc273f228a075309e4163f..830b62531cb697f78bf37d708937f000cc104c83 100644 (file)
@@ -449,6 +449,18 @@ class ExecuteTest(fixtures.TestBase):
         assert eng.dialect.returns_unicode_strings in (True, False)
         eng.dispose()
 
+    def test_works_after_dispose(self):
+        eng = create_engine(testing.db.url)
+        for i in range(3):
+            eq_(eng.scalar(select([1])), 1)
+            eng.dispose()
+
+    def test_works_after_dispose_testing_engine(self):
+        eng = engines.testing_engine()
+        for i in range(3):
+            eq_(eng.scalar(select([1])), 1)
+            eng.dispose()
+
 class ConvenienceExecuteTest(fixtures.TablesTest):
     @classmethod
     def define_tables(cls, metadata):