details:   https://code.tryton.org/tryton/commit/b529128ca42c
branch:    default
user:      Cédric Krier <[email protected]>
date:      Thu Mar 05 08:10:46 2026 +0100
description:
        Explicitly close sqlite connection

        The context manage on Connection only commit the connection but it 
should still
        be explicitly closed.

        Closes #13859
diffstat:

 trytond/trytond/backend/sqlite/database.py |   4 ++--
 trytond/trytond/tests/test_tryton.py       |  27 +++++++++++++++------------
 2 files changed, 17 insertions(+), 14 deletions(-)

diffs (52 lines):

diff -r adc3fc96c475 -r b529128ca42c trytond/trytond/backend/sqlite/database.py
--- a/trytond/trytond/backend/sqlite/database.py        Wed Mar 18 12:03:50 
2026 +0100
+++ b/trytond/trytond/backend/sqlite/database.py        Thu Mar 05 08:10:46 
2026 +0100
@@ -594,8 +594,8 @@
             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 -r adc3fc96c475 -r b529128ca42c trytond/trytond/tests/test_tryton.py
--- a/trytond/trytond/tests/test_tryton.py      Wed Mar 18 12:03:50 2026 +0100
+++ b/trytond/trytond/tests/test_tryton.py      Thu Mar 05 08:10:46 2026 +0100
@@ -171,19 +171,22 @@
         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
 
 

Reply via email to