Skip to content

Commit

Permalink
[test\test_basic.py] Use OleDLL instead of windll (#764)
Browse files Browse the repository at this point in the history
  • Loading branch information
moi15moi authored Feb 2, 2025
1 parent ddb2a1c commit 979e43a
Showing 1 changed file with 10 additions and 5 deletions.
15 changes: 10 additions & 5 deletions comtypes/test/test_basic.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
##import ut
import unittest as ut
from ctypes import windll, POINTER, byref, HRESULT
from ctypes import POINTER, byref, HRESULT
from comtypes import IUnknown, STDMETHOD, GUID
from comtypes.typeinfo import _CreateTypeLib2, ICreateTypeLib2

# XXX leaks references!

Expand All @@ -20,17 +21,21 @@ def test_release(self):
POINTER(IUnknown)()

def test_refcounts(self):
p = POINTER(IUnknown)()
windll.oleaut32.CreateTypeLib2(1, "blabla", byref(p))
# Since all COM interfaces derive from IUnknown and have the same reference counting behavior, any interface
# — whether ICreateTypeLib2 or otherwise — could be used for this test.
p = POINTER(ICreateTypeLib2)()
_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)

def test_qi(self):
p = POINTER(IUnknown)()
windll.oleaut32.CreateTypeLib2(1, "blabla", byref(p))
# Since all COM interfaces derive from IUnknown and have the same QueryInterface behavior, any interface
# — whether ICreateTypeLib2 or otherwise — could be used for this test.
p = POINTER(ICreateTypeLib2)()
_CreateTypeLib2(1, "blabla", byref(p))
self.assertEqual(p.AddRef(), 2)
self.assertEqual(p.Release(), 1)

Expand Down

0 comments on commit 979e43a

Please sign in to comment.