From 5d0c7cdc038429da614aa0ef410d969a49d7a4bb Mon Sep 17 00:00:00 2001 From: junkmd Date: Wed, 31 Dec 2025 10:44:21 +0900 Subject: [PATCH] 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. --- comtypes/test/test_client.py | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/comtypes/test/test_client.py b/comtypes/test/test_client.py index cd37053f4..991456ba0 100644 --- a/comtypes/test/test_client.py +++ b/comtypes/test/test_client.py @@ -270,13 +270,33 @@ def test_progid(self): self.assertEqual(consts.DatabaseCompare, Scripting.DatabaseCompare) def test_enums_in_friendly_mod(self): - consts = comtypes.client.Constants("scrrun.dll") comtypes.client.GetModule("scrrun.dll") - from comtypes.gen import Scripting - - for e in Scripting.StandardStreamTypes: - self.assertIn(e.name, consts.StandardStreamTypes) - self.assertEqual(consts.StandardStreamTypes[e.name], e.value) + comtypes.client.GetModule("msi.dll") + from comtypes.gen import Scripting, WindowsInstaller + + for enumtype, fadic in [ + ( + # StandardStreamTypes in scrrun.dll contains only 0, 1, 2 + Scripting.StandardStreamTypes, + comtypes.client.Constants("scrrun.dll").StandardStreamTypes, + ), + ( + # MsiInstallState in msi.dll contains negative values. + WindowsInstaller.MsiInstallState, + comtypes.client.Constants("msi.dll").MsiInstallState, + ), + ]: + for member in enumtype: + with self.subTest(enumtype=enumtype, member=member): + self.assertIn(member.name, fadic) + self.assertEqual(fadic[member.name], member.value) + for member_name, member_value in fadic.items(): + with self.subTest( + enumtype=enumtype, + member_name=member_name, + member_value=member_value, + ): + self.assertEqual(member_value, getattr(enumtype, member_name)) def test_returns_other_than_enum_members(self): obj = comtypes.client.CreateObject("SAPI.SpVoice")