diff --git a/Lib/test/test_sqlite3/test_dbapi.py b/Lib/test/test_sqlite3/test_dbapi.py index 6c95a887a32..12cd9974187 100644 --- a/Lib/test/test_sqlite3/test_dbapi.py +++ b/Lib/test/test_sqlite3/test_dbapi.py @@ -908,8 +908,6 @@ def __missing__(self, key): row = self.cu.fetchone() self.assertEqual(row[0], "foo") - # TODO: RUSTPYTHON - @unittest.expectedFailure def test_execute_dict_mapping_too_little_args(self): self.cu.execute("insert into test(name) values ('foo')") with self.assertRaises(sqlite.ProgrammingError): diff --git a/stdlib/src/sqlite.rs b/stdlib/src/sqlite.rs index 973fc431f82..8db90a7bba0 100644 --- a/stdlib/src/sqlite.rs +++ b/stdlib/src/sqlite.rs @@ -2725,7 +2725,15 @@ mod _sqlite { let name = unsafe { name.add(1) }; let name = ptr_to_str(name, vm)?; - let val = dict.get_item(name, vm)?; + let val = match dict.get_item_opt(name, vm)? { + Some(val) => val, + None => { + return Err(new_programming_error( + vm, + format!("You did not supply a value for binding parameter :{name}.",), + )); + } + }; self.bind_parameter(i, &val, vm)?; }