Resolve compatibility with oslo.db future

Change I468048c01455d9dfe12004736c181806dc218e37 in oslo.db means that
the table returned from 'oslo_db.utils.get_table' is no longer bound to
a 'Connection' or 'Engine'. Get out ahead of this breaking change by
creating out own 'Connection' as part of the test. Note that we use
'Connection.execute' instead of 'Engine.execute' as the latter is
deprecated in SQLAlchemy 1.4 for removal in 2.0.

Related-Bug: #1939716

Change-Id: I957d2a9d7c875120bed0022ce1e953b2ec9f97cd
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This commit is contained in:
Stephen Finucane
2021-08-12 15:59:32 +01:00
committed by Abhishek Kekane
parent 2fef2e6c4f
commit f374022359

View File

@@ -21,8 +21,8 @@ from glance.tests.functional.db import test_migrations
class TestMitaka02Mixin(test_migrations.AlembicMigrationsMixin):
def _pre_upgrade_mitaka02(self, engine):
metadef_resource_types = db_utils.get_table(engine,
'metadef_resource_types')
metadef_resource_types = db_utils.get_table(
engine, 'metadef_resource_types')
now = datetime.datetime.now()
db_rec1 = dict(id='9580',
name='OS::Nova::Instance',
@@ -35,20 +35,24 @@ class TestMitaka02Mixin(test_migrations.AlembicMigrationsMixin):
created_at=now,
updated_at=now,)
db_values = (db_rec1, db_rec2)
metadef_resource_types.insert().values(db_values).execute()
with engine.connect() as conn, conn.begin():
conn.execute(metadef_resource_types.insert().values(db_values))
def _check_mitaka02(self, engine, data):
metadef_resource_types = db_utils.get_table(engine,
'metadef_resource_types')
result = (metadef_resource_types.select()
.where(metadef_resource_types.c.name == 'OS::Nova::Instance')
.execute().fetchall())
self.assertEqual(0, len(result))
metadef_resource_types = db_utils.get_table(
engine, 'metadef_resource_types')
with engine.connect() as conn:
result = conn.execute(
metadef_resource_types.select()
.where(metadef_resource_types.c.name == 'OS::Nova::Instance')
).fetchall()
self.assertEqual(0, len(result))
result = (metadef_resource_types.select()
.where(metadef_resource_types.c.name == 'OS::Nova::Server')
.execute().fetchall())
self.assertEqual(1, len(result))
result = conn.execute(
metadef_resource_types.select()
.where(metadef_resource_types.c.name == 'OS::Nova::Server')
).fetchall()
self.assertEqual(1, len(result))
class TestMitaka02MySQL(TestMitaka02Mixin,