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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import unittest
  5. from ctypes import *
  6.  
  7. class AnonTest(unittest.TestCase):
  8.     
  9.     def test_anon(self):
  10.         
  11.         class ANON(Union):
  12.             _fields_ = [
  13.                 ('a', c_int),
  14.                 ('b', c_int)]
  15.  
  16.         
  17.         class Y((Structure,)):
  18.             _fields_ = [
  19.                 ('x', c_int),
  20.                 ('_', ANON),
  21.                 ('y', c_int)]
  22.             _anonymous_ = [
  23.                 '_']
  24.  
  25.         self.failUnlessEqual(Y.a.offset, sizeof(c_int))
  26.         self.failUnlessEqual(Y.b.offset, sizeof(c_int))
  27.         self.failUnlessEqual(ANON.a.offset, 0)
  28.         self.failUnlessEqual(ANON.b.offset, 0)
  29.  
  30.     
  31.     def test_anon_nonseq(self):
  32.         self.failUnlessRaises(TypeError, (lambda : type(Structure)('Name', (Structure,), {
  33. '_fields_': [],
  34. '_anonymous_': 42 })))
  35.  
  36.     
  37.     def test_anon_nonmember(self):
  38.         self.failUnlessRaises(AttributeError, (lambda : type(Structure)('Name', (Structure,), {
  39. '_fields_': [],
  40. '_anonymous_': [
  41. 'x'] })))
  42.  
  43.     
  44.     def test_nested(self):
  45.         
  46.         class ANON_S(Structure):
  47.             _fields_ = [
  48.                 ('a', c_int)]
  49.  
  50.         
  51.         class ANON_U((Union,)):
  52.             _fields_ = [
  53.                 ('_', ANON_S),
  54.                 ('b', c_int)]
  55.             _anonymous_ = [
  56.                 '_']
  57.  
  58.         
  59.         class Y((Structure,)):
  60.             _fields_ = [
  61.                 ('x', c_int),
  62.                 ('_', ANON_U),
  63.                 ('y', c_int)]
  64.             _anonymous_ = [
  65.                 '_']
  66.  
  67.         self.failUnlessEqual(Y.x.offset, 0)
  68.         self.failUnlessEqual(Y.a.offset, sizeof(c_int))
  69.         self.failUnlessEqual(Y.b.offset, sizeof(c_int))
  70.         self.failUnlessEqual(Y._.offset, sizeof(c_int))
  71.         self.failUnlessEqual(Y.y.offset, sizeof(c_int) * 2)
  72.  
  73.  
  74. if __name__ == '__main__':
  75.     unittest.main()
  76.  
  77.