bpo-36669: add matmul support to weakref.proxy (GH-12932)

This commit is contained in:
Mark Dickinson 2019-04-26 15:56:15 +09:00 committed by GitHub
parent 3cde440f20
commit 7abb6c05af
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 31 additions and 0 deletions

View file

@ -285,6 +285,21 @@ class ReferencesTestCase(TestBase):
p //= 5
self.assertEqual(p, 21)
def test_proxy_matmul(self):
class C:
def __matmul__(self, other):
return 1729
def __rmatmul__(self, other):
return -163
def __imatmul__(self, other):
return 561
o = C()
p = weakref.proxy(o)
self.assertEqual(p @ 5, 1729)
self.assertEqual(5 @ p, -163)
p @= 5
self.assertEqual(p, 561)
# The PyWeakref_* C API is documented as allowing either NULL or
# None as the value for the callback, where either means "no
# callback". The "no callback" ref and proxy objects are supposed