From 27884e2d5f500ff37f098e8eb27310dc14c9bb4e Mon Sep 17 00:00:00 2001 From: "Kim, YeonWoo" Date: Sat, 16 Jul 2022 13:47:35 +0900 Subject: [PATCH 1/2] Add weakproxy bool --- Lib/test/test_weakref.py | 4 ---- vm/src/builtins/weakproxy.rs | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Lib/test/test_weakref.py b/Lib/test/test_weakref.py index 10bd5a0c9..a25773a3c 100644 --- a/Lib/test/test_weakref.py +++ b/Lib/test/test_weakref.py @@ -162,8 +162,6 @@ class ReferencesTestCase(TestBase): c = C() self.assertRaises(TypeError, weakref.ref, c, callback=None) - # TODO: RUSTPYTHON - @unittest.expectedFailure def test_proxy_ref(self): o = C() o.bar = 1 @@ -405,8 +403,6 @@ class ReferencesTestCase(TestBase): del f[0] self.assertEqual(f.result, 0) - # TODO: RUSTPYTHON - @unittest.expectedFailure def test_proxy_bool(self): # Test clearing of SF bug #1170766 class List(list): pass diff --git a/vm/src/builtins/weakproxy.rs b/vm/src/builtins/weakproxy.rs index 1c8869809..16fca9cec 100644 --- a/vm/src/builtins/weakproxy.rs +++ b/vm/src/builtins/weakproxy.rs @@ -73,6 +73,11 @@ impl PyWeakProxy { self.try_upgrade(vm)?.length(vm) } + #[pymethod(magic)] + fn bool(&self, vm: &VirtualMachine) -> PyResult { + self.try_upgrade(vm)?.is_true(vm) + } + fn contains(&self, needle: PyObjectRef, vm: &VirtualMachine) -> PyResult { let obj = self.try_upgrade(vm)?; PySequence::contains(&obj, &needle, vm) From 4ac218f90efe5838f160948d0c032c2fdca5282c Mon Sep 17 00:00:00 2001 From: "Kim, YeonWoo" Date: Sat, 16 Jul 2022 14:34:28 +0900 Subject: [PATCH 2/2] Add weakproxy bytes --- Lib/test/test_weakref.py | 2 -- vm/src/builtins/weakproxy.rs | 5 +++++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_weakref.py b/Lib/test/test_weakref.py index a25773a3c..524b8159a 100644 --- a/Lib/test/test_weakref.py +++ b/Lib/test/test_weakref.py @@ -258,8 +258,6 @@ class ReferencesTestCase(TestBase): self.assertEqual(L3[:5], p3[:5]) self.assertEqual(L3[2:5], p3[2:5]) - # TODO: RUSTPYTHON - @unittest.expectedFailure def test_proxy_unicode(self): # See bug 5037 class C(object): diff --git a/vm/src/builtins/weakproxy.rs b/vm/src/builtins/weakproxy.rs index 16fca9cec..36c8e00a2 100644 --- a/vm/src/builtins/weakproxy.rs +++ b/vm/src/builtins/weakproxy.rs @@ -78,6 +78,11 @@ impl PyWeakProxy { self.try_upgrade(vm)?.is_true(vm) } + #[pymethod(magic)] + fn bytes(&self, vm: &VirtualMachine) -> PyResult { + self.try_upgrade(vm)?.bytes(vm) + } + fn contains(&self, needle: PyObjectRef, vm: &VirtualMachine) -> PyResult { let obj = self.try_upgrade(vm)?; PySequence::contains(&obj, &needle, vm)