Example #1
0
    def test_qi(self):
        p = POINTER(IUnknown)()
        windll.oleaut32.CreateTypeLib2(1, "blabla", byref(p))
        self.assertEqual(p.AddRef(), 2)
        self.assertEqual(p.Release(), 1)

        other = p.QueryInterface(IUnknown)
        self.assertEqual(other.AddRef(), 3)
        self.assertEqual(p.AddRef(), 4)
        self.assertEqual(p.Release(), 3)
        self.assertEqual(other.Release(), 2)

        del p  # calls p.Release()

        self.assertEqual(other.AddRef(), 2)
        self.assertEqual(other.Release(), 1)
Example #2
0
 def test_refcounts(self):
     p = POINTER(IUnknown)()
     windll.oleaut32.CreateTypeLib2(1, "blabla", byref(p))
     # initial refcount is 2
     for i in range(2, 10):
         self.assertEqual(p.AddRef(), i)
     for i in range(8, 0, -1):
         self.assertEqual(p.Release(), i)