Skip to content

Commit 41c6136

Browse files
committed
improve VARIANT.__repr__
1 parent 48391f9 commit 41c6136

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

comtypes/automation.py

+6
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,12 @@ def __del__(self):
220220
def __repr__(self):
221221
if self.vt & VT_BYREF:
222222
return "VARIANT(vt=0x%x, byref(%r))" % (self.vt, self[0])
223+
elif self is type(self).null:
224+
return "VARIANT.null"
225+
elif self is type(self).empty:
226+
return "VARIANT.empty"
227+
elif self is type(self).missing:
228+
return "VARIANT.missing"
223229
return "VARIANT(vt=0x%x, %r)" % (self.vt, self.value)
224230

225231
@classmethod

comtypes/test/test_variant.py

+7
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,13 @@ def test_byref(self):
216216
variable.value = 96
217217
self.assertEqual(v[0], 96)
218218

219+
def test_repr(self):
220+
self.assertEqual(repr(VARIANT(c_int(42))), "VARIANT(vt=0x3, 42)")
221+
self.assertEqual(repr(VARIANT(byref(c_int(42)))), "VARIANT(vt=0x4003, byref(42))")
222+
self.assertEqual(repr(VARIANT.empty), "VARIANT.empty")
223+
self.assertEqual(repr(VARIANT.null), "VARIANT.null")
224+
self.assertEqual(repr(VARIANT.missing), "VARIANT.missing")
225+
219226

220227
class ArrayTest(unittest.TestCase):
221228
def test_double(self):

0 commit comments

Comments
 (0)