summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-03-22 19:02:37 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2014-03-22 19:02:37 -0400
commit8e10ab92df0d8b5d24474e00d6628d2de94b900c (patch)
treebc3f7ba36ac697bd6492b6a90a483a2fa4bb81fb
parent5d2bfc4df45bd2f3347391c67b975066fdb74723 (diff)
downloadsqlalchemy-8e10ab92df0d8b5d24474e00d6628d2de94b900c.tar.gz
- restore the old behavior of the connection pool replacing itself just
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.
-rw-r--r--lib/sqlalchemy/engine/base.py1
-rw-r--r--test/engine/test_execute.py12
2 files changed, 13 insertions, 0 deletions
diff --git a/lib/sqlalchemy/engine/base.py b/lib/sqlalchemy/engine/base.py
index 2cad2a094..4a8719c6b 100644
--- a/lib/sqlalchemy/engine/base.py
+++ b/lib/sqlalchemy/engine/base.py
@@ -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:
diff --git a/test/engine/test_execute.py b/test/engine/test_execute.py
index 6efcdcb89..830b62531 100644
--- a/test/engine/test_execute.py
+++ b/test/engine/test_execute.py
@@ -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):