summaryrefslogtreecommitdiff
path: root/tests/sqlalchemy/test_exc_filters.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/sqlalchemy/test_exc_filters.py')
-rw-r--r--tests/sqlalchemy/test_exc_filters.py14
1 files changed, 8 insertions, 6 deletions
diff --git a/tests/sqlalchemy/test_exc_filters.py b/tests/sqlalchemy/test_exc_filters.py
index d0ea38b..09b5931 100644
--- a/tests/sqlalchemy/test_exc_filters.py
+++ b/tests/sqlalchemy/test_exc_filters.py
@@ -22,6 +22,7 @@ import sqlalchemy as sqla
from sqlalchemy.orm import mapper
from oslo.db import exception
+from oslo.db.sqlalchemy import compat
from oslo.db.sqlalchemy import exc_filters
from oslo.db.sqlalchemy import session
from oslo.db.sqlalchemy import test_base
@@ -67,7 +68,6 @@ class TestsExceptionFilter(oslo_test_base.BaseTestCase):
super(TestsExceptionFilter, self).setUp()
self.engine = sqla.create_engine("sqlite://")
exc_filters.register_engine(self.engine)
- sqla.event.listen(self.engine, "begin", session._begin_ping_listener)
self.engine.connect().close() # initialize
@contextlib.contextmanager
@@ -620,6 +620,8 @@ class TestDBDisconnected(TestsExceptionFilter):
def _fixture(self, dialect_name, exception, num_disconnects):
engine = self.engine
+ compat.engine_connect(engine, session._connect_ping_listener)
+
real_do_execute = engine.dialect.do_execute
counter = itertools.count(1)
@@ -650,14 +652,14 @@ class TestDBDisconnected(TestsExceptionFilter):
self.assertTrue(conn.in_transaction())
with self._fixture(dialect_name, exc_obj, 2):
- conn = self.engine.connect()
self.assertRaises(
exception.DBConnectionError,
- conn.begin
+ self.engine.connect
)
- self.assertFalse(conn.closed)
- self.assertFalse(conn.in_transaction())
- self.assertTrue(conn.invalidated)
+
+ # test implicit execution
+ with self._fixture(dialect_name, exc_obj, 1):
+ self.assertEqual(self.engine.scalar(sqla.select([1])), 1)
def test_mysql_ping_listener_disconnected(self):
for code in [2006, 2013, 2014, 2045, 2055]: