mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
gh-89022: Improve sqlite3 exceptions related to binding params and API misuse (#91572)
* Map SQLITE_MISUSE to sqlite3.InterfaceError SQLITE_MISUSE implies misuse of the SQLite C API, which, if it happens, is _not_ a user error; it is an sqlite3 extension module error. * Raise better errors when binding parameters fail. Instead of always raising InterfaceError, guessing what went wrong, raise accurate exceptions with more accurate error messages.
This commit is contained in:
parent
d716a0dfe2
commit
090819ec5f
5 changed files with 28 additions and 20 deletions
|
@ -743,7 +743,7 @@ class CursorTests(unittest.TestCase):
|
|||
self.assertEqual(row[0], "Hu\x00go")
|
||||
|
||||
def test_execute_non_iterable(self):
|
||||
with self.assertRaises(ValueError) as cm:
|
||||
with self.assertRaises(sqlite.ProgrammingError) as cm:
|
||||
self.cu.execute("insert into test(id) values (?)", 42)
|
||||
self.assertEqual(str(cm.exception), 'parameters are of unsupported type')
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue