Thomas Heller | babddfc | 2006-03-08 19:56:54 +0000 | [diff] [blame] | 1 | import unittest |
Thomas Heller | babddfc | 2006-03-08 19:56:54 +0000 | [diff] [blame] | 2 | |
| 3 | from ctypes import * |
| 4 | |
Thomas Heller | a022789 | 2006-03-13 10:47:02 +0000 | [diff] [blame] | 5 | class CHECKED(c_int): |
| 6 | def _check_retval_(value): |
| 7 | # Receives a CHECKED instance. |
| 8 | return str(value.value) |
| 9 | _check_retval_ = staticmethod(_check_retval_) |
| 10 | |
Thomas Heller | babddfc | 2006-03-08 19:56:54 +0000 | [diff] [blame] | 11 | class Test(unittest.TestCase): |
| 12 | |
| 13 | def test_checkretval(self): |
| 14 | |
Thomas Heller | babddfc | 2006-03-08 19:56:54 +0000 | [diff] [blame] | 15 | import _ctypes_test |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 16 | dll = CDLL(_ctypes_test.__file__) |
Benjamin Peterson | c9c0f20 | 2009-06-30 23:06:06 +0000 | [diff] [blame] | 17 | self.assertEqual(42, dll._testfunc_p_p(42)) |
Thomas Heller | babddfc | 2006-03-08 19:56:54 +0000 | [diff] [blame] | 18 | |
| 19 | dll._testfunc_p_p.restype = CHECKED |
Benjamin Peterson | c9c0f20 | 2009-06-30 23:06:06 +0000 | [diff] [blame] | 20 | self.assertEqual("42", dll._testfunc_p_p(42)) |
Thomas Heller | babddfc | 2006-03-08 19:56:54 +0000 | [diff] [blame] | 21 | |
| 22 | dll._testfunc_p_p.restype = None |
Benjamin Peterson | c9c0f20 | 2009-06-30 23:06:06 +0000 | [diff] [blame] | 23 | self.assertEqual(None, dll._testfunc_p_p(42)) |
Thomas Heller | babddfc | 2006-03-08 19:56:54 +0000 | [diff] [blame] | 24 | |
| 25 | del dll._testfunc_p_p.restype |
Benjamin Peterson | c9c0f20 | 2009-06-30 23:06:06 +0000 | [diff] [blame] | 26 | self.assertEqual(42, dll._testfunc_p_p(42)) |
Thomas Heller | babddfc | 2006-03-08 19:56:54 +0000 | [diff] [blame] | 27 | |
| 28 | try: |
| 29 | oledll |
| 30 | except NameError: |
| 31 | pass |
| 32 | else: |
| 33 | def test_oledll(self): |
Andrew Svetlov | 2606a6f | 2012-12-19 14:33:35 +0200 | [diff] [blame] | 34 | self.assertRaises(OSError, |
Thomas Heller | babddfc | 2006-03-08 19:56:54 +0000 | [diff] [blame] | 35 | oledll.oleaut32.CreateTypeLib2, |
Guido van Rossum | 360e4b8 | 2007-05-14 22:51:27 +0000 | [diff] [blame] | 36 | 0, None, None) |
Thomas Heller | babddfc | 2006-03-08 19:56:54 +0000 | [diff] [blame] | 37 | |
| 38 | if __name__ == "__main__": |
| 39 | unittest.main() |