1 2from PyObjCTools.TestSupport import * 3from Quartz.CoreGraphics import * 4from Foundation import NSData 5 6import sys 7 8if sys.version_info[0] != 2: 9 def buffer(value): 10 if isinstance(value, bytes): 11 return value 12 return value.encode('latin1') 13 14class TestCGDataProvider (TestCase): 15 def testTypes(self): 16 self.assertIsCFType(CGDataProviderRef) 17 18 def testFunctions(self): 19 provider = CGDataProviderCreateWithCFData(buffer("data")) 20 self.assertIsInstance(provider, CGDataProviderRef) 21 22 url = CFURLCreateWithFileSystemPath(None, 23 "/Library/Documentation/Acknowledgements.rtf", 24 kCFURLPOSIXPathStyle, False) 25 26 provider = CGDataProviderCreateWithURL(url) 27 self.assertIsInstance(provider, CGDataProviderRef) 28 29 v = CGDataProviderRetain(provider) 30 self.assertTrue(v is provider) 31 CGDataProviderRelease(provider) 32 33 data = CGDataProviderCopyData(provider) 34 self.assertIsInstance(data, CFDataRef) 35 36 info = [b"hello world", False] 37 def release(info): 38 info[-1] = True 39 provider = CGDataProviderCreateWithData(info, info[0], len(info[0]), release) 40 self.assertIsInstance(provider, CGDataProviderRef) 41 del provider 42 43 self.assertTrue(info[-1]) 44 45 46 47 def testMissing(self): 48 self.fail("CGDataProviderCreateSequential") # + callbacks 49 self.fail("CGDataProviderCreateDirect") # + callbacks 50 self.fail("CGDataProviderCreate") # + callbacks 51 self.fail("CGDataProviderCreateDirectAccess") # + callbacks 52 53if __name__ == "__main__": 54 main() 55