Merge pull request #3900 from oow214/weakref_bool

Add weakproxy bool, bytes
This commit is contained in:
Jeong YunWon
2022-07-16 15:29:36 +09:00
committed by GitHub
2 changed files with 10 additions and 6 deletions

View File

@@ -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
@@ -260,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):
@@ -405,8 +401,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

View File

@@ -73,6 +73,16 @@ impl PyWeakProxy {
self.try_upgrade(vm)?.length(vm)
}
#[pymethod(magic)]
fn bool(&self, vm: &VirtualMachine) -> PyResult<bool> {
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<bool> {
let obj = self.try_upgrade(vm)?;
PySequence::contains(&obj, &needle, vm)