Home | History | Annotate | Download | only in test
      1 from ctypes import *
      2 import unittest
      3 
      4 subclasses = []
      5 for base in [c_byte, c_short, c_int, c_long, c_longlong,
      6         c_ubyte, c_ushort, c_uint, c_ulong, c_ulonglong,
      7         c_float, c_double, c_longdouble, c_bool]:
      8     class X(base):
      9         pass
     10     subclasses.append(X)
     11 
     12 class X(c_char):
     13     pass
     14 
     15 # This test checks if the __repr__ is correct for subclasses of simple types
     16 
     17 class ReprTest(unittest.TestCase):
     18     def test_numbers(self):
     19         for typ in subclasses:
     20             base = typ.__bases__[0]
     21             self.assertTrue(repr(base(42)).startswith(base.__name__))
     22             self.assertEqual("<X object at", repr(typ(42))[:12])
     23 
     24     def test_char(self):
     25         self.assertEqual("c_char('x')", repr(c_char('x')))
     26         self.assertEqual("<X object at", repr(X('x'))[:12])
     27 
     28 if __name__ == "__main__":
     29     unittest.main()
     30