1import py 2from cffi import FFI 3 4class FakeBackend(object): 5 6 def nonstandard_integer_types(self): 7 return {} 8 9 def sizeof(self, name): 10 return 1 11 12 def load_library(self, path): 13 return "fake library" 14 15 def new_primitive_type(self, name): 16 return FakeType("primitive " + name) 17 18 def new_void_type(self): 19 return FakeType("void") 20 def new_pointer_type(self, x): 21 return FakeType('ptr-to-%r' % (x,)) 22 def new_array_type(self, x, y): 23 return FakeType('array-from-%r-len-%r' % (x, y)) 24 def cast(self, x, y): 25 return 'casted!' 26 def _get_types(self): 27 return "CData", "CType" 28 29 buffer = "buffer type" 30 31 32class FakeType(object): 33 def __init__(self, cdecl): 34 self.cdecl = cdecl 35 36 37def test_typeof(): 38 ffi = FFI(backend=FakeBackend()) 39 clong = ffi.typeof("signed long int") 40 assert isinstance(clong, FakeType) 41 assert clong.cdecl == 'primitive long' 42