| import unittest |
| |
| from ctypes import * |
| |
| class CHECKED(c_int): |
| def _check_retval_(value): |
| # Receives a CHECKED instance. |
| return str(value.value) |
| _check_retval_ = staticmethod(_check_retval_) |
| |
| class Test(unittest.TestCase): |
| |
| def test_checkretval(self): |
| |
| import _ctypes_test |
| dll = CDLL(_ctypes_test.__file__) |
| self.assertEqual(42, dll._testfunc_p_p(42)) |
| |
| dll._testfunc_p_p.restype = CHECKED |
| self.assertEqual("42", dll._testfunc_p_p(42)) |
| |
| dll._testfunc_p_p.restype = None |
| self.assertEqual(None, dll._testfunc_p_p(42)) |
| |
| del dll._testfunc_p_p.restype |
| self.assertEqual(42, dll._testfunc_p_p(42)) |
| |
| try: |
| oledll |
| except NameError: |
| pass |
| else: |
| def test_oledll(self): |
| self.assertRaises(WindowsError, |
| oledll.oleaut32.CreateTypeLib2, |
| 0, None, None) |
| |
| if __name__ == "__main__": |
| unittest.main() |