SF bug #1770766: weakref proxy has incorrect __nonzero__ behavior.

This commit is contained in:
Raymond Hettinger 2005-03-27 03:04:54 +00:00
parent ca5d8fea3d
commit e6c470f255
2 changed files with 7 additions and 5 deletions

View File

@ -271,6 +271,12 @@ class ReferencesTestCase(TestBase):
del f[0]
self.assertEqual(f.result, 0)
def test_proxy_bool(self):
# Test clearing of SF bug #1170766
class List(list): pass
lyst = List()
self.assertEqual(bool(weakref.proxy(lyst)), bool(lyst))
def test_getweakrefcount(self):
o = C()
ref1 = weakref.ref(o)

View File

@ -505,11 +505,7 @@ proxy_nonzero(PyWeakReference *proxy)
PyObject *o = PyWeakref_GET_OBJECT(proxy);
if (!proxy_checkref(proxy))
return -1;
if (o->ob_type->tp_as_number &&
o->ob_type->tp_as_number->nb_nonzero)
return (*o->ob_type->tp_as_number->nb_nonzero)(o);
else
return 1;
return PyObject_IsTrue(o);
}
static void