From fadc0ef9022a360016d2e9af756fb93c9c308467 Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Mon, 19 Jul 2021 10:40:32 +0100 Subject: [PATCH] Replace use of Engine.scalar() Resolve the following RemovedIn20Warning warning: The Engine.scalar() method is considered legacy as of the 1.x series of SQLAlchemy and will be removed in 2.0. All statement execution in SQLAlchemy 2.0 is performed by the Connection.execute() method of Connection, or in the ORM by the Session.execute() method of Session; the Result.scalar() method can then be used to return a scalar result. Change-Id: Ic3c9c5bb008b6299f2ed9a59bda0329fab9d554d Signed-off-by: Stephen Finucane --- oslo_db/tests/fixtures.py | 5 ----- oslo_db/tests/sqlalchemy/test_exc_filters.py | 11 ++++++++--- oslo_db/tests/sqlalchemy/test_sqlalchemy.py | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/oslo_db/tests/fixtures.py b/oslo_db/tests/fixtures.py index 20b8a38..e1a41c9 100644 --- a/oslo_db/tests/fixtures.py +++ b/oslo_db/tests/fixtures.py @@ -82,11 +82,6 @@ class WarningsFixture(fixtures.Fixture): message=r'Calling \.begin\(\) when a transaction is already .*', category=sqla_exc.SADeprecationWarning) - warnings.filterwarnings( - 'once', - message=r'The Engine.scalar\(\) method is considered legacy .*', - category=sqla_exc.SADeprecationWarning) - # ...plus things that aren't our fault # FIXME(stephenfin): These are caused by sqlalchemy-migrate, not us, diff --git a/oslo_db/tests/sqlalchemy/test_exc_filters.py b/oslo_db/tests/sqlalchemy/test_exc_filters.py index 9075f2a..a05c9a9 100644 --- a/oslo_db/tests/sqlalchemy/test_exc_filters.py +++ b/oslo_db/tests/sqlalchemy/test_exc_filters.py @@ -1162,11 +1162,14 @@ class TestDBDisconnected(TestsExceptionFilter): yield def _test_ping_listener_disconnected( - self, dialect_name, exc_obj, is_disconnect=True): + self, dialect_name, exc_obj, is_disconnect=True, + ): with self._fixture(dialect_name, exc_obj, 1, is_disconnect): conn = self.engine.connect() with conn.begin(): - self.assertEqual(1, conn.scalar(sqla.select(1))) + self.assertEqual( + 1, conn.execute(sqla.select(1)).scalars().first(), + ) self.assertFalse(conn.closed) self.assertFalse(conn.invalidated) self.assertTrue(conn.in_transaction()) @@ -1179,7 +1182,9 @@ class TestDBDisconnected(TestsExceptionFilter): # test implicit execution with self._fixture(dialect_name, exc_obj, 1): - self.assertEqual(1, self.engine.scalar(sqla.select(1))) + self.assertEqual( + 1, self.engine.execute(sqla.select(1)).scalars().first(), + ) def test_mariadb_error_1927(self): for code in [1927]: diff --git a/oslo_db/tests/sqlalchemy/test_sqlalchemy.py b/oslo_db/tests/sqlalchemy/test_sqlalchemy.py index ede67c6..003a49a 100644 --- a/oslo_db/tests/sqlalchemy/test_sqlalchemy.py +++ b/oslo_db/tests/sqlalchemy/test_sqlalchemy.py @@ -479,14 +479,14 @@ class SQLiteConnectTest(test_base.BaseTestCase): engine = self._fixture(sqlite_fk=True) self.assertEqual( 1, - engine.scalar(sql.text('pragma foreign_keys')) + engine.execute(sql.text('pragma foreign_keys')).scalars().first(), ) engine = self._fixture(sqlite_fk=False) self.assertEqual( 0, - engine.scalar(sql.text("pragma foreign_keys")) + engine.execute(sql.text('pragma foreign_keys')).scalars().first(), ) def test_sqlite_synchronous_listener(self): @@ -496,14 +496,14 @@ class SQLiteConnectTest(test_base.BaseTestCase): # http://www.sqlite.org/pragma.html#pragma_synchronous self.assertEqual( 2, - engine.scalar(sql.text('pragma synchronous')) + engine.execute(sql.text('pragma synchronous')).scalars().first(), ) engine = self._fixture(sqlite_synchronous=False) self.assertEqual( 0, - engine.scalar(sql.text('pragma synchronous')) + engine.execute(sql.text('pragma synchronous')).scalars().first(), ) -- GitLab