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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import unittest
  5. from ctypes import *
  6. import _ctypes_test
  7. lib = CDLL(_ctypes_test.__file__)
  8.  
  9. class StringPtrTestCase(unittest.TestCase):
  10.     
  11.     def test__POINTER_c_char(self):
  12.         
  13.         class X(Structure):
  14.             _fields_ = [
  15.                 ('str', POINTER(c_char))]
  16.  
  17.         x = X()
  18.         self.assertRaises(ValueError, getattr, x.str, 'contents')
  19.         b = c_buffer('Hello, World')
  20.         grc = getrefcount
  21.         import sys
  22.         self.failUnlessEqual(grc(b), 2)
  23.         x.str = b
  24.         self.failUnlessEqual(grc(b), 3)
  25.         for i in range(len(b)):
  26.             self.failUnlessEqual(b[i], x.str[i])
  27.         
  28.         self.assertRaises(TypeError, setattr, x, 'str', 'Hello, World')
  29.  
  30.     
  31.     def test__c_char_p(self):
  32.         
  33.         class X(Structure):
  34.             _fields_ = [
  35.                 ('str', c_char_p)]
  36.  
  37.         x = X()
  38.         self.failUnlessEqual(x.str, None)
  39.         x.str = 'Hello, World'
  40.         self.failUnlessEqual(x.str, 'Hello, World')
  41.         b = c_buffer('Hello, World')
  42.         self.failUnlessRaises(TypeError, setattr, x, 'str', b)
  43.  
  44.     
  45.     def test_functions(self):
  46.         strchr = lib.my_strchr
  47.         strchr.restype = c_char_p
  48.         strchr.argtypes = (c_char_p, c_char)
  49.         self.failUnlessEqual(strchr('abcdef', 'c'), 'cdef')
  50.         self.failUnlessEqual(strchr(c_buffer('abcdef'), 'c'), 'cdef')
  51.         strchr.argtypes = (POINTER(c_char), c_char)
  52.         buf = c_buffer('abcdef')
  53.         self.failUnlessEqual(strchr(buf, 'c'), 'cdef')
  54.         self.failUnlessEqual(strchr('abcdef', 'c'), 'cdef')
  55.         strchr.restype = POINTER(c_char)
  56.         buf = c_buffer('abcdef')
  57.         r = strchr(buf, 'c')
  58.         x = (r[0], r[1], r[2], r[3], r[4])
  59.         self.failUnlessEqual(x, ('c', 'd', 'e', 'f', '\x00'))
  60.         del buf
  61.         x1 = (r[0], r[1], r[2], r[3], r[4])
  62.  
  63.  
  64. if __name__ == '__main__':
  65.     unittest.main()
  66.  
  67.