home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_368 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  3.7 KB  |  119 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import unittest
  5. from ctypes import *
  6. from sys import getrefcount as grc
  7.  
  8. class ObjectsTestCase(unittest.TestCase):
  9.     
  10.     def failUnlessSame(self, a, b):
  11.         self.failUnlessEqual(id(a), id(b))
  12.  
  13.     
  14.     def test_ints(self):
  15.         i = 42000123
  16.         self.failUnlessEqual(3, grc(i))
  17.         ci = c_int(i)
  18.         self.failUnlessEqual(3, grc(i))
  19.         self.failUnlessEqual(ci._objects, None)
  20.  
  21.     
  22.     def test_c_char_p(self):
  23.         s = 'Hello, World'
  24.         self.failUnlessEqual(3, grc(s))
  25.         cs = c_char_p(s)
  26.         self.failUnlessEqual(4, grc(s))
  27.         self.failUnlessSame(cs._objects, s)
  28.  
  29.     
  30.     def test_simple_struct(self):
  31.         
  32.         class X(Structure):
  33.             _fields_ = [
  34.                 ('a', c_int),
  35.                 ('b', c_int)]
  36.  
  37.         a = 421234
  38.         b = 421235
  39.         x = X()
  40.         self.failUnlessEqual(x._objects, None)
  41.         x.a = a
  42.         x.b = b
  43.         self.failUnlessEqual(x._objects, None)
  44.  
  45.     
  46.     def test_embedded_structs(self):
  47.         
  48.         class X(Structure):
  49.             _fields_ = [
  50.                 ('a', c_int),
  51.                 ('b', c_int)]
  52.  
  53.         
  54.         class Y((Structure,)):
  55.             _fields_ = [
  56.                 ('x', X),
  57.                 ('y', X)]
  58.  
  59.         y = Y()
  60.         self.failUnlessEqual(y._objects, None)
  61.         x1 = X()
  62.         x2 = X()
  63.         y.x = x1
  64.         y.y = x2
  65.         self.failUnlessEqual(y._objects, {
  66.             '0': { },
  67.             '1': { } })
  68.         (x1.a, x2.b) = (42, 93)
  69.         self.failUnlessEqual(y._objects, {
  70.             '0': { },
  71.             '1': { } })
  72.  
  73.     
  74.     def test_xxx(self):
  75.         
  76.         class X(Structure):
  77.             _fields_ = [
  78.                 ('a', c_char_p),
  79.                 ('b', c_char_p)]
  80.  
  81.         
  82.         class Y((Structure,)):
  83.             _fields_ = [
  84.                 ('x', X),
  85.                 ('y', X)]
  86.  
  87.         s1 = 'Hello, World'
  88.         s2 = 'Hallo, Welt'
  89.         x = X()
  90.         x.a = s1
  91.         x.b = s2
  92.         self.failUnlessEqual(x._objects, {
  93.             '0': s1,
  94.             '1': s2 })
  95.         y = Y()
  96.         y.x = x
  97.         self.failUnlessEqual(y._objects, {
  98.             '0': {
  99.                 '0': s1,
  100.                 '1': s2 } })
  101.  
  102.     
  103.     def test_ptr_struct(self):
  104.         
  105.         class X(Structure):
  106.             _fields_ = [
  107.                 ('data', POINTER(c_int))]
  108.  
  109.         A = c_int * 4
  110.         a = A(11, 22, 33, 44)
  111.         self.failUnlessEqual(a._objects, None)
  112.         x = X()
  113.         x.data = a
  114.  
  115.  
  116. if __name__ == '__main__':
  117.     unittest.main()
  118.  
  119.