def testPrivateDtorInstanceMethod(self): """Test if PrivateDtor.instance() method return the proper singleton.""" pd1 = PrivateDtor.instance() calls = pd1.instanceCalls() self.assertEqual(type(pd1), PrivateDtor) pd2 = PrivateDtor.instance() self.assertEqual(pd2, pd1) self.assertEqual(pd2.instanceCalls(), calls + 1)
def testPrivateDtorInstanceMethod(self): '''Test if PrivateDtor.instance() method return the proper singleton.''' pd1 = PrivateDtor.instance() calls = pd1.instanceCalls() self.assertEqual(type(pd1), PrivateDtor) pd2 = PrivateDtor.instance() self.assertEqual(pd2, pd1) self.assertEqual(pd2.instanceCalls(), calls + 1)
def testProtectedMethod(self): '''Calls protected method of a class with a private destructor.''' obj = PrivateDtor.instance() self.assertEqual(type(obj), PrivateDtor) self.assertEqual(obj.instanceCalls(), 1) self.assertEqual(obj.instanceCalls(), obj.protectedInstanceCalls()) obj = PrivateDtor.instance() self.assertEqual(obj.instanceCalls(), 2) self.assertEqual(obj.instanceCalls(), obj.protectedInstanceCalls())
def testPrivateDtor(self): '''PrivateDtor weakref''' obj = PrivateDtor.instance() print obj ref = weakref.ref(obj, self.cb) del obj self.assert_(self.called)
def testPrivateDtorRefCounting(self): """Test refcounting of the singleton returned by PrivateDtor.instance().""" pd1 = PrivateDtor.instance() calls = pd1.instanceCalls() refcnt = sys.getrefcount(pd1) pd2 = PrivateDtor.instance() self.assertEqual(pd2.instanceCalls(), calls + 1) self.assertEqual(sys.getrefcount(pd2), sys.getrefcount(pd1)) self.assertEqual(sys.getrefcount(pd2), refcnt + 1) del pd1 self.assertEqual(sys.getrefcount(pd2), refcnt) del pd2 gc.collect() pd3 = PrivateDtor.instance() self.assertEqual(type(pd3), PrivateDtor) self.assertEqual(pd3.instanceCalls(), calls + 2) self.assertEqual(sys.getrefcount(pd3), refcnt)
def testPrivateDtorRefCounting(self): '''Test refcounting of the singleton returned by PrivateDtor.instance().''' pd1 = PrivateDtor.instance() calls = pd1.instanceCalls() refcnt = sys.getrefcount(pd1) pd2 = PrivateDtor.instance() self.assertEqual(pd2.instanceCalls(), calls + 1) self.assertEqual(sys.getrefcount(pd2), sys.getrefcount(pd1)) self.assertEqual(sys.getrefcount(pd2), refcnt + 1) del pd1 self.assertEqual(sys.getrefcount(pd2), refcnt) del pd2 gc.collect() pd3 = PrivateDtor.instance() self.assertEqual(type(pd3), PrivateDtor) self.assertEqual(pd3.instanceCalls(), calls + 2) self.assertEqual(sys.getrefcount(pd3), refcnt)
def testClassDecref(self): # Bug was that class PyTypeObject wasn't decrefed when instance # was invalidated before = sys.getrefcount(PrivateDtor) for i in range(1000): obj = PrivateDtor.instance() shiboken.invalidate(obj) after = sys.getrefcount(PrivateDtor) self.assertLess(abs(before - after), 5)
def testPrivateDtor(self): '''PrivateDtor weakref''' obj = PrivateDtor.instance() ref = weakref.ref(obj, self.cb) del obj self.assertTrue(self.called)