summaryrefslogtreecommitdiff
path: root/lib/python2.7/ctypes/test/test_repr.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/ctypes/test/test_repr.py')
-rw-r--r--lib/python2.7/ctypes/test/test_repr.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/python2.7/ctypes/test/test_repr.py b/lib/python2.7/ctypes/test/test_repr.py
new file mode 100644
index 0000000..99cc556
--- /dev/null
+++ b/lib/python2.7/ctypes/test/test_repr.py
@@ -0,0 +1,29 @@
+from ctypes import *
+import unittest
+
+subclasses = []
+for base in [c_byte, c_short, c_int, c_long, c_longlong,
+ c_ubyte, c_ushort, c_uint, c_ulong, c_ulonglong,
+ c_float, c_double, c_longdouble, c_bool]:
+ class X(base):
+ pass
+ subclasses.append(X)
+
+class X(c_char):
+ pass
+
+# This test checks if the __repr__ is correct for subclasses of simple types
+
+class ReprTest(unittest.TestCase):
+ def test_numbers(self):
+ for typ in subclasses:
+ base = typ.__bases__[0]
+ self.assertTrue(repr(base(42)).startswith(base.__name__))
+ self.assertEqual("<X object at", repr(typ(42))[:12])
+
+ def test_char(self):
+ self.assertEqual("c_char('x')", repr(c_char('x')))
+ self.assertEqual("<X object at", repr(X('x'))[:12])
+
+if __name__ == "__main__":
+ unittest.main()