From 12e42df744807a5806e73726dec5993993fb41d5 Mon Sep 17 00:00:00 2001 From: Michael Johnson Date: Thu, 21 Jul 2022 23:12:26 +0000 Subject: Fix sqlalchemy table_names DeprecationWarning This patch updates Designate to use the new method of getting the table names from a sqlalchemy engine. It replaces the use of tables_names() with get_table_names from the sqlalchemy inspector. The DeprecationWarning was: SADeprecationWarning: The Engine.table_names() method is deprecated and will be removed in a future release. Please refer to Inspector.get_table_names(). (deprecated since: 1.4) self.assertEqual(table_names, self.storage.engine.table_names()) Change-Id: I99d01a552d24123681e11f746c2e1195634efbfd --- designate/sqlalchemy/base.py | 5 ++++- designate/tests/test_storage/test_sqlalchemy.py | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/designate/sqlalchemy/base.py b/designate/sqlalchemy/base.py index 905e4b40..d72f36ca 100644 --- a/designate/sqlalchemy/base.py +++ b/designate/sqlalchemy/base.py @@ -21,7 +21,7 @@ from oslo_db import exception as oslo_db_exception from oslo_db.sqlalchemy import utils as oslodb_utils from oslo_log import log as logging from oslo_utils import timeutils -from sqlalchemy import select, or_, between, func, distinct +from sqlalchemy import select, or_, between, func, distinct, inspect from designate import exceptions from designate import objects @@ -96,6 +96,9 @@ class SQLAlchemy(object, metaclass=abc.ABCMeta): def rollback(self): self.session.rollback() + def get_inspector(self): + return inspect(self.engine) + @staticmethod def _apply_criterion(table, query, criterion): if criterion is not None: diff --git a/designate/tests/test_storage/test_sqlalchemy.py b/designate/tests/test_storage/test_sqlalchemy.py index c70dec91..9a4bf321 100644 --- a/designate/tests/test_storage/test_sqlalchemy.py +++ b/designate/tests/test_storage/test_sqlalchemy.py @@ -53,7 +53,8 @@ class SqlalchemyStorageTest(StorageTestCase, TestCase): u'zone_transfer_requests', u'zones' ] - self.assertEqual(table_names, self.storage.engine.table_names()) + inspector = self.storage.get_inspector() + self.assertEqual(table_names, inspector.get_table_names()) def test_schema_table_indexes(self): indexes_t = self.storage.engine.execute("SELECT * FROM sqlite_master WHERE type = 'index';") # noqa -- cgit v1.2.1