Skip to content

Commit 5d0c7cd

Browse files
committed
test: Improve enum testing in test_client.py.
Refactor `test_enums_in_friendly_mod` in `comtypes/test/test_client.py` to: - Utilize a parameterized approach to test both `Scripting.StandardStreamTypes` and `WindowsInstaller.MsiInstallState`. - Verify enum member presence and value consistency between the generated enum types and `comtypes.client.Constants`. - Employ `subTest` for granular failure reporting in parameterized tests.
1 parent eea9c0d commit 5d0c7cd

File tree

1 file changed

+26
-6
lines changed

1 file changed

+26
-6
lines changed

comtypes/test/test_client.py

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -270,13 +270,33 @@ def test_progid(self):
270270
self.assertEqual(consts.DatabaseCompare, Scripting.DatabaseCompare)
271271

272272
def test_enums_in_friendly_mod(self):
273-
consts = comtypes.client.Constants("scrrun.dll")
274273
comtypes.client.GetModule("scrrun.dll")
275-
from comtypes.gen import Scripting
276-
277-
for e in Scripting.StandardStreamTypes:
278-
self.assertIn(e.name, consts.StandardStreamTypes)
279-
self.assertEqual(consts.StandardStreamTypes[e.name], e.value)
274+
comtypes.client.GetModule("msi.dll")
275+
from comtypes.gen import Scripting, WindowsInstaller
276+
277+
for enumtype, fadic in [
278+
(
279+
# StandardStreamTypes in scrrun.dll contains only 0, 1, 2
280+
Scripting.StandardStreamTypes,
281+
comtypes.client.Constants("scrrun.dll").StandardStreamTypes,
282+
),
283+
(
284+
# MsiInstallState in msi.dll contains negative values.
285+
WindowsInstaller.MsiInstallState,
286+
comtypes.client.Constants("msi.dll").MsiInstallState,
287+
),
288+
]:
289+
for member in enumtype:
290+
with self.subTest(enumtype=enumtype, member=member):
291+
self.assertIn(member.name, fadic)
292+
self.assertEqual(fadic[member.name], member.value)
293+
for member_name, member_value in fadic.items():
294+
with self.subTest(
295+
enumtype=enumtype,
296+
member_name=member_name,
297+
member_value=member_value,
298+
):
299+
self.assertEqual(member_value, getattr(enumtype, member_name))
280300

281301
def test_returns_other_than_enum_members(self):
282302
obj = comtypes.client.CreateObject("SAPI.SpVoice")

0 commit comments

Comments
 (0)