summaryrefslogtreecommitdiff
path: root/test/engine
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-09-03 17:57:20 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2010-09-03 17:57:20 -0400
commit33b70a1f0259dd5e4acd2cb78c9a5ab6254cf9ce (patch)
tree08430231aa8f6d1d84487212ee2c43bc5df7a3cd /test/engine
parent47f56ac4990c7c3e6a020a837e91e39f41adf39e (diff)
parent6e83926657057c97239bef114e640f2b102be02c (diff)
downloadsqlalchemy-33b70a1f0259dd5e4acd2cb78c9a5ab6254cf9ce.tar.gz
merge from tip
Diffstat (limited to 'test/engine')
-rw-r--r--test/engine/test_pool.py2
-rw-r--r--test/engine/test_reconnect.py39
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))