summaryrefslogtreecommitdiff
path: root/oslo_db/tests/sqlalchemy/test_exc_filters.py
diff options
context:
space:
mode:
Diffstat (limited to 'oslo_db/tests/sqlalchemy/test_exc_filters.py')
-rw-r--r--oslo_db/tests/sqlalchemy/test_exc_filters.py153
1 files changed, 85 insertions, 68 deletions
diff --git a/oslo_db/tests/sqlalchemy/test_exc_filters.py b/oslo_db/tests/sqlalchemy/test_exc_filters.py
index 27a37a4..528d3ed 100644
--- a/oslo_db/tests/sqlalchemy/test_exc_filters.py
+++ b/oslo_db/tests/sqlalchemy/test_exc_filters.py
@@ -270,14 +270,16 @@ class TestNonExistentConstraintPostgreSQL(
):
def test_raise(self):
- matched = self.assertRaises(
- exception.DBNonExistentConstraint,
- self.engine.execute,
- sqla.schema.DropConstraint(
- sqla.ForeignKeyConstraint(["id"], ["baz.id"],
- name="bar_fkey",
- table=self.table_1)),
- )
+ with self.engine.connect() as conn:
+ matched = self.assertRaises(
+ exception.DBNonExistentConstraint,
+ conn.execute,
+ sqla.schema.DropConstraint(
+ sqla.ForeignKeyConstraint(["id"], ["baz.id"],
+ name="bar_fkey",
+ table=self.table_1)),
+ )
+
self.assertInnerException(
matched,
"ProgrammingError",
@@ -295,14 +297,16 @@ class TestNonExistentConstraintMySQL(
):
def test_raise(self):
- matched = self.assertRaises(
- exception.DBNonExistentConstraint,
- self.engine.execute,
- sqla.schema.DropConstraint(
- sqla.ForeignKeyConstraint(["id"], ["baz.id"],
- name="bar_fkey",
- table=self.table_1)),
- )
+ with self.engine.connect() as conn:
+ matched = self.assertRaises(
+ exception.DBNonExistentConstraint,
+ conn.execute,
+ sqla.schema.DropConstraint(
+ sqla.ForeignKeyConstraint(["id"], ["baz.id"],
+ name="bar_fkey",
+ table=self.table_1)),
+ )
+
# NOTE(jd) Cannot check precisely with assertInnerException since MySQL
# error are not the same depending on its version…
self.assertIsInstance(matched.inner_exception,
@@ -332,11 +336,13 @@ class TestNonExistentTable(
)
def test_raise(self):
- matched = self.assertRaises(
- exception.DBNonExistentTable,
- self.engine.execute,
- sqla.schema.DropTable(self.table_1),
- )
+ with self.engine.connect() as conn:
+ matched = self.assertRaises(
+ exception.DBNonExistentTable,
+ conn.execute,
+ sqla.schema.DropTable(self.table_1),
+ )
+
self.assertInnerException(
matched,
"OperationalError",
@@ -352,11 +358,13 @@ class TestNonExistentTablePostgreSQL(
):
def test_raise(self):
- matched = self.assertRaises(
- exception.DBNonExistentTable,
- self.engine.execute,
- sqla.schema.DropTable(self.table_1),
- )
+ with self.engine.connect() as conn:
+ matched = self.assertRaises(
+ exception.DBNonExistentTable,
+ conn.execute,
+ sqla.schema.DropTable(self.table_1),
+ )
+
self.assertInnerException(
matched,
"ProgrammingError",
@@ -372,11 +380,13 @@ class TestNonExistentTableMySQL(
):
def test_raise(self):
- matched = self.assertRaises(
- exception.DBNonExistentTable,
- self.engine.execute,
- sqla.schema.DropTable(self.table_1),
- )
+ with self.engine.connect() as conn:
+ matched = self.assertRaises(
+ exception.DBNonExistentTable,
+ conn.execute,
+ sqla.schema.DropTable(self.table_1),
+ )
+
# NOTE(jd) Cannot check precisely with assertInnerException since MySQL
# error are not the same depending on its version…
self.assertIsInstance(matched.inner_exception,
@@ -488,13 +498,14 @@ class TestReferenceErrorSQLite(
self.table_2.create(self.engine)
def test_raise(self):
- self.engine.execute(sql.text("PRAGMA foreign_keys = ON"))
+ with self.engine.connect() as conn:
+ conn.execute(sql.text("PRAGMA foreign_keys = ON"))
- matched = self.assertRaises(
- exception.DBReferenceError,
- self.engine.execute,
- self.table_2.insert().values(id=1, foo_id=2)
- )
+ matched = self.assertRaises(
+ exception.DBReferenceError,
+ conn.execute,
+ self.table_2.insert().values(id=1, foo_id=2)
+ )
self.assertInnerException(
matched,
@@ -510,16 +521,17 @@ class TestReferenceErrorSQLite(
self.assertIsNone(matched.key_table)
def test_raise_delete(self):
- self.engine.execute(sql.text("PRAGMA foreign_keys = ON"))
-
with self.engine.connect() as conn:
+ conn.execute(sql.text("PRAGMA foreign_keys = ON"))
conn.execute(self.table_1.insert().values(id=1234, foo=42))
conn.execute(self.table_2.insert().values(id=4321, foo_id=1234))
- matched = self.assertRaises(
- exception.DBReferenceError,
- self.engine.execute,
- self.table_1.delete()
- )
+
+ matched = self.assertRaises(
+ exception.DBReferenceError,
+ conn.execute,
+ self.table_1.delete()
+ )
+
self.assertInnerException(
matched,
"IntegrityError",
@@ -539,12 +551,14 @@ class TestReferenceErrorPostgreSQL(
db_test_base._PostgreSQLOpportunisticTestCase,
):
def test_raise(self):
- params = {'id': 1, 'foo_id': 2}
- matched = self.assertRaises(
- exception.DBReferenceError,
- self.engine.execute,
- self.table_2.insert().values(**params)
- )
+ with self.engine.connect() as conn:
+ params = {'id': 1, 'foo_id': 2}
+ matched = self.assertRaises(
+ exception.DBReferenceError,
+ conn.execute,
+ self.table_2.insert().values(**params)
+ )
+
self.assertInnerException(
matched,
"IntegrityError",
@@ -565,11 +579,12 @@ class TestReferenceErrorPostgreSQL(
with self.engine.connect() as conn:
conn.execute(self.table_1.insert().values(id=1234, foo=42))
conn.execute(self.table_2.insert().values(id=4321, foo_id=1234))
- matched = self.assertRaises(
- exception.DBReferenceError,
- self.engine.execute,
- self.table_1.delete()
- )
+ matched = self.assertRaises(
+ exception.DBReferenceError,
+ conn.execute,
+ self.table_1.delete()
+ )
+
self.assertInnerException(
matched,
"IntegrityError",
@@ -592,11 +607,12 @@ class TestReferenceErrorMySQL(
db_test_base._MySQLOpportunisticTestCase,
):
def test_raise(self):
- matched = self.assertRaises(
- exception.DBReferenceError,
- self.engine.execute,
- self.table_2.insert().values(id=1, foo_id=2)
- )
+ with self.engine.connect() as conn:
+ matched = self.assertRaises(
+ exception.DBReferenceError,
+ conn.execute,
+ self.table_2.insert().values(id=1, foo_id=2)
+ )
# NOTE(jd) Cannot check precisely with assertInnerException since MySQL
# error are not the same depending on its version…
@@ -635,11 +651,11 @@ class TestReferenceErrorMySQL(
with self.engine.connect() as conn:
conn.execute(self.table_1.insert().values(id=1234, foo=42))
conn.execute(self.table_2.insert().values(id=4321, foo_id=1234))
- matched = self.assertRaises(
- exception.DBReferenceError,
- self.engine.execute,
- self.table_1.delete()
- )
+ matched = self.assertRaises(
+ exception.DBReferenceError,
+ conn.execute,
+ self.table_1.delete()
+ )
# NOTE(jd) Cannot check precisely with assertInnerException since MySQL
# error are not the same depending on its version…
self.assertIsInstance(matched.inner_exception,
@@ -1185,9 +1201,10 @@ class TestDBDisconnected(TestsExceptionFilter):
# test implicit execution
with self._fixture(dialect_name, exc_obj, 1):
- self.assertEqual(
- 1, self.engine.execute(sqla.select(1)).scalars().first(),
- )
+ with self.engine.connect() as conn:
+ self.assertEqual(
+ 1, conn.execute(sqla.select(1)).scalars().first(),
+ )
def test_mariadb_error_1927(self):
for code in [1927]: