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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import unittest
  5. import pickle
  6. from ctypes import *
  7. import _ctypes_test
  8. dll = CDLL(_ctypes_test.__file__)
  9.  
  10. class X(Structure):
  11.     _fields_ = [
  12.         ('a', c_int),
  13.         ('b', c_double)]
  14.     init_called = 0
  15.     
  16.     def __init__(self, *args, **kw):
  17.         X.init_called += 1
  18.         self.x = 42
  19.  
  20.  
  21.  
  22. class Y(X):
  23.     _fields_ = [
  24.         ('str', c_char_p)]
  25.  
  26.  
  27. class PickleTest(unittest.TestCase):
  28.     
  29.     def dumps(self, item):
  30.         return pickle.dumps(item)
  31.  
  32.     
  33.     def loads(self, item):
  34.         return pickle.loads(item)
  35.  
  36.     
  37.     def test_simple(self):
  38.         for src in [
  39.             c_int(42),
  40.             c_double(3.14)]:
  41.             dst = self.loads(self.dumps(src))
  42.             self.failUnlessEqual(src.__dict__, dst.__dict__)
  43.             self.failUnlessEqual(buffer(src)[:], buffer(dst)[:])
  44.         
  45.  
  46.     
  47.     def test_struct(self):
  48.         X.init_called = 0
  49.         x = X()
  50.         x.a = 42
  51.         self.failUnlessEqual(X.init_called, 1)
  52.         y = self.loads(self.dumps(x))
  53.         self.failUnlessEqual(X.init_called, 1)
  54.         self.failUnlessEqual(y.__dict__, x.__dict__)
  55.         self.failUnlessEqual(buffer(y)[:], buffer(x)[:])
  56.  
  57.     
  58.     def test_unpickable(self):
  59.         self.assertRaises((ValueError,), (lambda : self.dumps(Y())))
  60.         prototype = CFUNCTYPE(c_int)
  61.         for None in [
  62.             c_char_p(),
  63.             c_wchar_p(),
  64.             c_void_p(),
  65.             pointer(c_int(42)),
  66.             dll._testfunc_p_p,
  67.             prototype((lambda : 42))]:
  68.             item = None
  69.         
  70.  
  71.     
  72.     def test_wchar(self):
  73.         pickle.dumps(c_char('x'))
  74.         pickle.dumps(c_wchar(u'x'))
  75.  
  76.  
  77.  
  78. class PickleTest_1(PickleTest):
  79.     
  80.     def dumps(self, item):
  81.         return pickle.dumps(item, 1)
  82.  
  83.  
  84.  
  85. class PickleTest_2(PickleTest):
  86.     
  87.     def dumps(self, item):
  88.         return pickle.dumps(item, 2)
  89.  
  90.  
  91. if __name__ == '__main__':
  92.     unittest.main()
  93.  
  94.