summaryrefslogtreecommitdiff
path: root/oslo_db/tests/sqlalchemy/test_sqlalchemy.py
diff options
context:
space:
mode:
Diffstat (limited to 'oslo_db/tests/sqlalchemy/test_sqlalchemy.py')
-rw-r--r--oslo_db/tests/sqlalchemy/test_sqlalchemy.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/oslo_db/tests/sqlalchemy/test_sqlalchemy.py b/oslo_db/tests/sqlalchemy/test_sqlalchemy.py
index d954700..ec75ffc 100644
--- a/oslo_db/tests/sqlalchemy/test_sqlalchemy.py
+++ b/oslo_db/tests/sqlalchemy/test_sqlalchemy.py
@@ -23,7 +23,9 @@ from unittest import mock
import fixtures
from oslo_config import cfg
+from oslo_utils import versionutils
import sqlalchemy
+from sqlalchemy.engine import base as base_engine
from sqlalchemy import exc
from sqlalchemy import sql
from sqlalchemy import Column, MetaData, Table
@@ -895,3 +897,22 @@ class PatchStacktraceTest(db_test_base._DbTestCase):
# we're the caller, see that we're in there
caller = os.path.join("tests", "sqlalchemy", "test_sqlalchemy.py")
self.assertIn(caller, call[1][1])
+
+
+class MySQLConnectPingListenerTest(db_test_base._MySQLOpportunisticTestCase):
+
+ def test__connect_ping_listener(self):
+ for idx in range(2):
+ with self.engine.begin() as conn:
+ self.assertTrue(isinstance(conn._transaction,
+ base_engine.RootTransaction))
+ engines._connect_ping_listener(conn, False)
+ # TODO(ralonsoh): drop this check once SQLAlchemy minimum
+ # version is 2.0.
+ sqla_version = versionutils.convert_version_to_tuple(
+ sqlalchemy.__version__)
+ if sqla_version[0] >= 2:
+ self.assertIsNone(conn._transaction)
+ else:
+ self.assertTrue(isinstance(conn._transaction,
+ base_engine.RootTransaction))