From 2eafdd55649344bc0ee43ee409f30db48a0ce712 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Thu, 5 Mar 2026 08:10:46 +0100 Subject: [PATCH] Explicitly close sqlite connection The context manage on Connection only commit the connection but it should still be explicitly closed. Closes #13859 --- trytond/trytond/backend/sqlite/database.py | 4 ++-- trytond/trytond/tests/test_tryton.py | 27 ++++++++++++---------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/trytond/trytond/backend/sqlite/database.py b/trytond/trytond/backend/sqlite/database.py index d0a234297e..c676d280c8 100644 --- a/trytond/trytond/backend/sqlite/database.py +++ b/trytond/trytond/backend/sqlite/database.py @@ -594,8 +594,8 @@ class Database(DatabaseInterface): path = os.path.join(config.get('database', 'path'), database_name + '.sqlite') with sqlite.connect(path) as conn: - cursor = conn.cursor() - cursor.close() + conn.cursor() + conn.close() cls._list_cache.clear() @classmethod diff --git a/trytond/trytond/tests/test_tryton.py b/trytond/trytond/tests/test_tryton.py index e1930a0969..50bf906473 100644 --- a/trytond/trytond/tests/test_tryton.py +++ b/trytond/trytond/tests/test_tryton.py @@ -171,19 +171,22 @@ def _sqlite_copy(file_, restore=False): finally: database.put_connection(connection, True) - with Transaction().start(DB_NAME, 0) as transaction, \ - sqlite.connect(file_) as conn2: + with Transaction().start(DB_NAME, 0) as transaction: conn1 = transaction.connection - if restore: - conn2, conn1 = conn1, conn2 - if hasattr(conn1, 'backup'): - conn1.backup(conn2) - else: - try: - import sqlitebck - except ImportError: - return False - sqlitebck.copy(conn1, conn2) + with sqlite.connect(file_) as conn2: + if restore: + in_, out = conn2, conn1 + else: + in_, out = conn1, conn2 + if hasattr(in_, 'backup'): + in_.backup(out) + else: + try: + import sqlitebck + except ImportError: + return False + sqlitebck.copy(in_, out) + conn2.close() return True