diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-09-03 17:57:20 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-09-03 17:57:20 -0400 |
| commit | 33b70a1f0259dd5e4acd2cb78c9a5ab6254cf9ce (patch) | |
| tree | 08430231aa8f6d1d84487212ee2c43bc5df7a3cd /test/engine | |
| parent | 47f56ac4990c7c3e6a020a837e91e39f41adf39e (diff) | |
| parent | 6e83926657057c97239bef114e640f2b102be02c (diff) | |
| download | sqlalchemy-33b70a1f0259dd5e4acd2cb78c9a5ab6254cf9ce.tar.gz | |
merge from tip
Diffstat (limited to 'test/engine')
| -rw-r--r-- | test/engine/test_pool.py | 2 | ||||
| -rw-r--r-- | test/engine/test_reconnect.py | 39 |
2 files changed, 36 insertions, 5 deletions
diff --git a/test/engine/test_pool.py b/test/engine/test_pool.py index 29591f11e..d567d6663 100644 --- a/test/engine/test_pool.py +++ b/test/engine/test_pool.py @@ -667,7 +667,7 @@ class QueuePoolTest(PoolTestBase): c1 = None c1 = p.connect() assert c1.connection.id != c_id - + def test_recreate(self): dbapi = MockDBAPI() p = pool.QueuePool(creator=lambda : dbapi.connect('foo.db'), diff --git a/test/engine/test_reconnect.py b/test/engine/test_reconnect.py index b92c88066..8ef851358 100644 --- a/test/engine/test_reconnect.py +++ b/test/engine/test_reconnect.py @@ -1,13 +1,12 @@ -from sqlalchemy.test.testing import eq_ +from sqlalchemy.test.testing import eq_, assert_raises import time import weakref from sqlalchemy import select, MetaData, Integer, String, pool -from sqlalchemy.test.schema import Table -from sqlalchemy.test.schema import Column +from sqlalchemy.test.schema import Table, Column import sqlalchemy as tsa from sqlalchemy.test import TestBase, testing, engines from sqlalchemy.test.util import gc_collect - +from sqlalchemy import exc class MockDisconnect(Exception): pass @@ -257,7 +256,39 @@ class RealReconnectTest(TestBase): assert not conn.invalidated conn.close() + + def test_invalidate_twice(self): + conn = engine.connect() + conn.invalidate() + conn.invalidate() + + def test_explode_in_initializer(self): + engine = engines.testing_engine() + def broken_initialize(connection): + connection.execute("select fake_stuff from _fake_table") + + engine.dialect.initialize = broken_initialize + + # raises a DBAPIError, not an AttributeError + assert_raises(exc.DBAPIError, engine.connect) + # dispose connections so we get a new one on + # next go + engine.dispose() + + p1 = engine.pool + + def is_disconnect(e): + return True + + engine.dialect.is_disconnect = is_disconnect + + # invalidate() also doesn't screw up + assert_raises(exc.DBAPIError, engine.connect) + + # pool was recreated + assert engine.pool is not p1 + def test_null_pool(self): engine = \ engines.reconnecting_engine(options=dict(poolclass=pool.NullPool)) |
