From bb1db9e86f4445603fc0dff7964faff87d27b2b0 Mon Sep 17 00:00:00 2001 From: "Michael S. Molina" <70410625+michael-s-molina@users.noreply.github.com> Date: Thu, 29 Jun 2023 12:12:12 -0300 Subject: [PATCH] fix: Deque mutated during iteration (#24550) --- superset/utils/core.py | 28 +++++++++---------- .../databases/ssh_tunnel/dao_tests.py | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/superset/utils/core.py b/superset/utils/core.py index 226daad45..ca3b9ae7b 100644 --- a/superset/utils/core.py +++ b/superset/utils/core.py @@ -850,23 +850,23 @@ def pessimistic_connection_handling(some_engine: Engine) -> None: # restore 'close with result' connection.should_close_with_result = save_should_close_with_result - if some_engine.dialect.name == "sqlite": + if some_engine.dialect.name == "sqlite": - @event.listens_for(some_engine, "connect") - def set_sqlite_pragma( # pylint: disable=unused-argument - connection: sqlite3.Connection, - *args: Any, - ) -> None: - r""" - Enable foreign key support for SQLite. + @event.listens_for(some_engine, "connect") + def set_sqlite_pragma( # pylint: disable=unused-argument + connection: sqlite3.Connection, + *args: Any, + ) -> None: + r""" + Enable foreign key support for SQLite. - :param connection: The SQLite connection - :param \*args: Additional positional arguments - :see: https://docs.sqlalchemy.org/en/latest/dialects/sqlite.html - """ + :param connection: The SQLite connection + :param \*args: Additional positional arguments + :see: https://docs.sqlalchemy.org/en/latest/dialects/sqlite.html + """ - with closing(connection.cursor()) as cursor: - cursor.execute("PRAGMA foreign_keys=ON") + with closing(connection.cursor()) as cursor: + cursor.execute("PRAGMA foreign_keys=ON") def send_email_smtp( # pylint: disable=invalid-name,too-many-arguments,too-many-locals diff --git a/tests/unit_tests/databases/ssh_tunnel/dao_tests.py b/tests/unit_tests/databases/ssh_tunnel/dao_tests.py index af0b1ac00..4dfbc5fcd 100644 --- a/tests/unit_tests/databases/ssh_tunnel/dao_tests.py +++ b/tests/unit_tests/databases/ssh_tunnel/dao_tests.py @@ -35,7 +35,7 @@ def test_create_ssh_tunnel(): "password": "bar", } - result = SSHTunnelDAO.create(properties) + result = SSHTunnelDAO.create(properties, commit=False) assert result is not None assert isinstance(result, SSHTunnel)