diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-08-10 05:26:16 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-08-10 05:26:16 +0000 |
| commit | 50c4825b54502bdd73b531704b87d463c6edda88 (patch) | |
| tree | fbc8f30dbdde252c504edd82e590f0eead315d64 | |
| parent | c20f8b1cfe30d5000e7bcf49c3ad031ce127f7df (diff) | |
| download | sqlalchemy-50c4825b54502bdd73b531704b87d463c6edda88.tar.gz | |
merged r5018 from 0.4 branch, but using contextual_connect() (will fix in 0.4 too)
| -rw-r--r-- | test/engine/reconnect.py | 18 | ||||
| -rw-r--r-- | test/testlib/engines.py | 5 |
2 files changed, 21 insertions, 2 deletions
diff --git a/test/engine/reconnect.py b/test/engine/reconnect.py index 1539d80e0..8bb2d9cd6 100644 --- a/test/engine/reconnect.py +++ b/test/engine/reconnect.py @@ -3,7 +3,7 @@ import weakref from testlib.sa import select, MetaData, Table, Column, Integer, String import testlib.sa as tsa from testlib import TestBase, testing, engines - +import time class MockDisconnect(Exception): pass @@ -277,6 +277,22 @@ class RealReconnectTest(TestBase): self.assertEquals(conn.execute(select([1])).scalar(), 1) assert not conn.invalidated +class RecycleTest(TestBase): + def test_basic(self): + for threadlocal in (False, True): + engine = engines.reconnecting_engine(options={'pool_recycle':1, 'pool_threadlocal':threadlocal}) + + conn = engine.contextual_connect() + self.assertEquals(conn.execute(select([1])).scalar(), 1) + conn.close() + + engine.test_shutdown() + time.sleep(2) + + conn = engine.contextual_connect() + self.assertEquals(conn.execute(select([1])).scalar(), 1) + conn.close() + meta, table, engine = None, None, None class InvalidateDuringResultTest(TestBase): def setUp(self): diff --git a/test/testlib/engines.py b/test/testlib/engines.py index 73ac80632..3df98d4fc 100644 --- a/test/testlib/engines.py +++ b/test/testlib/engines.py @@ -87,7 +87,10 @@ class ReconnectFixture(object): def reconnecting_engine(url=None, options=None): url = url or config.db_url dbapi = config.db.dialect.dbapi - engine = testing_engine(url, {'module':ReconnectFixture(dbapi)}) + if not options: + options = {} + options['module'] = ReconnectFixture(dbapi) + engine = testing_engine(url, options) engine.test_shutdown = engine.dialect.dbapi.shutdown return engine |
