home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- import unittest
- from ctypes import *
-
- class MyInt(c_int):
-
- def __cmp__(self, other):
- if type(other) != MyInt:
- return -1
- return cmp(self.value, other.value)
-
-
- def __hash__(self):
- return hash(self.value)
-
-
-
- class Test(unittest.TestCase):
-
- def test_compare(self):
- self.failUnlessEqual(MyInt(3), MyInt(3))
- self.failIfEqual(MyInt(42), MyInt(43))
-
-
- def test_ignore_retval(self):
- proto = CFUNCTYPE(None)
-
- def func():
- return (1, 'abc', None)
-
- cb = proto(func)
- self.failUnlessEqual(None, cb())
-
-
- def test_int_callback(self):
- args = []
-
- def func(arg):
- args.append(arg)
- return arg
-
- cb = CFUNCTYPE(None, MyInt)(func)
- self.failUnlessEqual(None, cb(42))
- self.failUnlessEqual(type(args[-1]), MyInt)
- cb = CFUNCTYPE(c_int, c_int)(func)
- self.failUnlessEqual(42, cb(42))
- self.failUnlessEqual(type(args[-1]), int)
-
-
- def test_int_struct(self):
-
- class X(Structure):
- _fields_ = [
- ('x', MyInt)]
-
- self.failUnlessEqual(X().x, MyInt())
- s = X()
- s.x = MyInt(42)
- self.failUnlessEqual(s.x, MyInt(42))
-
-
- if __name__ == '__main__':
- unittest.main()
-
-