mirror of
https://github.com/RustPython/RustPython.git
synced 2026-06-02 19:39:49 +09:00
3
Lib/test/support/__init__.py
vendored
3
Lib/test/support/__init__.py
vendored
@@ -1933,8 +1933,7 @@ def _check_tracemalloc():
|
||||
"if tracemalloc module is tracing "
|
||||
"memory allocations")
|
||||
|
||||
|
||||
# TODO: RUSTPYTHON (comment out before)
|
||||
# TODO: RUSTPYTHON; GC is not supported yet
|
||||
# def check_free_after_iterating(test, iter, cls, args=()):
|
||||
# class A(cls):
|
||||
# def __del__(self):
|
||||
|
||||
2
Lib/test/test_array.py
vendored
2
Lib/test/test_array.py
vendored
@@ -176,7 +176,7 @@ class ArrayReconstructorTest(unittest.TestCase):
|
||||
self.assertEqual(a, b,
|
||||
msg="{0!r} != {1!r}; testcase={2!r}".format(a, b, testcase))
|
||||
|
||||
# TODO: RUSTPYTHON
|
||||
# TODO: RUSTPYTHON - requires UTF-32 encoding support in codecs and proper array reconstructor implementation
|
||||
@unittest.expectedFailure
|
||||
def test_unicode(self):
|
||||
teststr = "Bonne Journ\xe9e \U0002030a\U00020347"
|
||||
|
||||
4
Lib/test/test_baseexception.py
vendored
4
Lib/test/test_baseexception.py
vendored
@@ -83,7 +83,7 @@ class ExceptionClassTests(unittest.TestCase):
|
||||
exc_set = set(e for e in exc_set if not e.startswith('_'))
|
||||
# RUSTPYTHON specific
|
||||
exc_set.discard("JitError")
|
||||
# TODO: RUSTPYTHON; this will be officially introduced in Python 3.15
|
||||
# XXX: RUSTPYTHON; IncompleteInputError will be officially introduced in Python 3.15
|
||||
exc_set.discard("IncompleteInputError")
|
||||
self.assertEqual(len(exc_set), 0, "%s not accounted for" % exc_set)
|
||||
|
||||
@@ -121,8 +121,6 @@ class ExceptionClassTests(unittest.TestCase):
|
||||
[repr(exc), exc.__class__.__name__ + '()'])
|
||||
self.interface_test_driver(results)
|
||||
|
||||
# TODO: RUSTPYTHON
|
||||
@unittest.expectedFailure
|
||||
def test_setstate_refcount_no_crash(self):
|
||||
# gh-97591: Acquire strong reference before calling tp_hash slot
|
||||
# in PyObject_SetAttr.
|
||||
|
||||
@@ -647,6 +647,24 @@ impl PyRef<PyBaseException> {
|
||||
vm.new_tuple((self.class().to_owned(), self.args()))
|
||||
}
|
||||
}
|
||||
|
||||
#[pymethod(magic)]
|
||||
fn setstate(self, state: PyObjectRef, vm: &VirtualMachine) -> PyResult<PyObjectRef> {
|
||||
if !vm.is_none(&state) {
|
||||
let dict = state
|
||||
.downcast::<crate::builtins::PyDict>()
|
||||
.map_err(|_| vm.new_type_error("state is not a dictionary".to_owned()))?;
|
||||
|
||||
for (key, value) in &dict {
|
||||
let key_str = key.str(vm)?;
|
||||
if key_str.as_str().starts_with("__") {
|
||||
continue;
|
||||
}
|
||||
self.as_object().set_attr(&key_str, value.clone(), vm)?;
|
||||
}
|
||||
}
|
||||
Ok(vm.ctx.none())
|
||||
}
|
||||
}
|
||||
|
||||
impl Constructor for PyBaseException {
|
||||
|
||||
Reference in New Issue
Block a user