File tree Expand file tree Collapse file tree 2 files changed +9
-12
lines changed
Expand file tree Collapse file tree 2 files changed +9
-12
lines changed Original file line number Diff line number Diff line change @@ -613,8 +613,6 @@ def test_inplace_on_self(self):
613613 t ^= t
614614 self .assertEqual (t , self .thetype ())
615615
616- # TODO: RUSTPYTHON
617- @unittest .expectedFailure
618616 def test_weakref (self ):
619617 s = self .thetype ('gallahad' )
620618 p = weakref .proxy (s )
Original file line number Diff line number Diff line change @@ -62,26 +62,25 @@ impl PyWeakProxy {
6262 // TODO: callbacks
6363 #[ pymethod( magic) ]
6464 fn getattr ( & self , attr_name : PyStrRef , vm : & VirtualMachine ) -> PyResult {
65- let obj = self . weak . upgrade ( ) . ok_or_else ( || {
66- vm. new_exception_msg (
67- vm. ctx . exceptions . reference_error . clone ( ) ,
68- "weakly-referenced object no longer exists" . to_owned ( ) ,
69- )
70- } ) ?;
65+ let obj = self . weak . upgrade ( ) . ok_or_else ( || new_reference_error ( vm) ) ?;
7166 obj. get_attr ( attr_name, vm)
7267 }
7368 #[ pymethod( magic) ]
7469 fn str ( & self , vm : & VirtualMachine ) -> PyResult < PyStrRef > {
7570 match self . weak . upgrade ( ) {
7671 Some ( obj) => obj. str ( vm) ,
77- None => Err ( vm. new_exception_msg (
78- vm. ctx . exceptions . reference_error . clone ( ) ,
79- "weakly-referenced object no longer exists" . to_owned ( ) ,
80- ) ) ,
72+ None => Err ( new_reference_error ( vm) ) ,
8173 }
8274 }
8375}
8476
77+ fn new_reference_error ( vm : & VirtualMachine ) -> PyRef < super :: PyBaseException > {
78+ vm. new_exception_msg (
79+ vm. ctx . exceptions . reference_error . clone ( ) ,
80+ "weakly-referenced object no longer exists" . to_owned ( ) ,
81+ )
82+ }
83+
8584impl SetAttr for PyWeakProxy {
8685 fn setattro (
8786 zelf : & crate :: Py < Self > ,
You can’t perform that action at this time.
0 commit comments