def testProxyEq(self): self.SetupTestAttributes() pf1 = WeakMethodProxy(self.c.f) pf2 = WeakMethodProxy(self.c.f) pf3 = WeakMethodProxy(self.d.f) assert pf1 == pf2 assert pf3 != pf2 del self.c assert pf1 == pf2 assert pf1.is_dead() assert pf2.is_dead()
def testDies(self): self.SetupTestAttributes() rf = WeakMethodRef(self.c.f) pf = WeakMethodProxy(self.c.f) assert not rf.is_dead() assert not pf.is_dead() assert rf()() == 1 assert pf(2) == 3 self.c = None assert rf.is_dead() assert pf.is_dead() assert rf() == None with pytest.raises(ReferenceError): pf()
def testWorksWithUnboundMethods(self): self.SetupTestAttributes() meth = self.C.f rf = WeakMethodRef(meth) pf = WeakMethodProxy(meth) assert meth(self.c) == 1 assert rf()(self.c) == 1 assert pf(self.c) == 1 assert not rf.is_dead() assert not pf.is_dead()
def testWorksWithFunctions(self): self.SetupTestAttributes() def foo(y): return y + 1 rf = WeakMethodRef(foo) pf = WeakMethodProxy(foo) assert foo(1) == 2 assert rf()(1) == 2 assert pf(1) == 2 assert not rf.is_dead() assert not pf.is_dead()