mirror of
https://github.com/RustPython/RustPython.git
synced 2026-06-02 19:39:49 +09:00
Validate SyntaxError details tuple shape (#7533)
This commit is contained in:
1
Lib/test/test_exceptions.py
vendored
1
Lib/test/test_exceptions.py
vendored
@@ -2519,7 +2519,6 @@ class SyntaxErrorTests(unittest.TestCase):
|
||||
self.assertEqual(error, the_exception.text)
|
||||
self.assertEqual("bad bad", the_exception.msg)
|
||||
|
||||
@unittest.expectedFailure # TODO: RUSTPYTHON
|
||||
def test_incorrect_constructor(self):
|
||||
args = ("bad.py", 1, 2)
|
||||
self.assertRaises(TypeError, SyntaxError, "bad bad", args)
|
||||
|
||||
@@ -2397,6 +2397,22 @@ pub(super) mod types {
|
||||
.downcast::<crate::builtins::PyTuple>()
|
||||
{
|
||||
let location_tup_len = location_tuple.len();
|
||||
|
||||
match location_tup_len {
|
||||
4 | 6 => {}
|
||||
5 => {
|
||||
return Err(vm.new_type_error(
|
||||
"end_offset must be provided when end_lineno is provided".to_owned(),
|
||||
));
|
||||
}
|
||||
_ => {
|
||||
return Err(vm.new_type_error(format!(
|
||||
"function takes exactly 4 or 6 arguments ({} given)",
|
||||
location_tup_len
|
||||
)));
|
||||
}
|
||||
}
|
||||
|
||||
for (i, &attr) in [
|
||||
"filename",
|
||||
"lineno",
|
||||
|
||||
Reference in New Issue
Block a user