details:   https://code.tryton.org/tryton/commit/a07466262eb5
branch:    7.0
user:      Nicolas Évrard <[email protected]>
date:      Thu Apr 30 20:09:07 2026 +0200
description:
        User percent encoded name of inexistant database

        Closes #14801
        (grafted from 5fddfb00cfffa81177c0b5ddda6aaecaccfe19da)
diffstat:

 trytond/trytond/backend/sqlite/database.py |  3 ++-
 trytond/trytond/tests/test_transaction.py  |  5 +++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diffs (35 lines):

diff -r c9b66b814b9d -r a07466262eb5 trytond/trytond/backend/sqlite/database.py
--- a/trytond/trytond/backend/sqlite/database.py        Fri Apr 24 11:47:03 
2026 +0200
+++ b/trytond/trytond/backend/sqlite/database.py        Thu Apr 30 20:09:07 
2026 +0200
@@ -436,7 +436,8 @@
             db_path = safe_join(
                 config.get('database', 'path'), self.name + '.sqlite')
             if not os.path.isfile(db_path):
-                raise IOError("Database '%s' doesn't exist!" % db_path)
+                raise DatabaseOperationalError(
+                    f"Database '{db_path}' doesn't exist!")
             db_uri = base_uri._replace(path=db_path)
 
         # Use unparse before replacing sqlite with file because SQLite accepts
diff -r c9b66b814b9d -r a07466262eb5 trytond/trytond/tests/test_transaction.py
--- a/trytond/trytond/tests/test_transaction.py Fri Apr 24 11:47:03 2026 +0200
+++ b/trytond/trytond/tests/test_transaction.py Thu Apr 30 20:09:07 2026 +0200
@@ -3,6 +3,7 @@
 import unittest
 from unittest.mock import Mock
 
+from trytond import backend
 from trytond.tests.test_tryton import CONTEXT, DB_NAME, USER, activate_module
 from trytond.transaction import Transaction
 
@@ -30,8 +31,8 @@
         and ensure that it stops cleanly and allows starting of next
         transaction'''
         self.assertRaises(
-            Exception, empty_transaction, "Non existant DB", USER,
-            context=CONTEXT)
+            backend.DatabaseOperationalError, empty_transaction,
+            "Non%20existant%20DB", USER, context=CONTEXT)
         self.assertTrue(empty_transaction(DB_NAME, USER, context=CONTEXT))
 
     def test_set_user(self):

Reply via email to