1from PyObjCTools.TestSupport import * 2 3import Quartz 4 5try: 6 long 7except NameError: 8 long = int 9 10try: 11 unicode 12except NameError: 13 unicode = str 14 15class TestCGImageMetadata (TestCase): 16 @min_os_level('10.8') 17 def testTypes10_8(self): 18 self.assertIsCFType(Quartz.CGImageMetadataRef) 19 self.assertIsCFType(Quartz.CGImageMetadataTagRef) 20 21 @min_os_level('10.8') 22 def testFunctions10_8(self): 23 self.assertIsInstance(Quartz.CGImageMetadataGetTypeID(), (int, long)) 24 self.assertIsInstance(Quartz.CGImageMetadataTagGetTypeID(), (int, long)) 25 26 self.assertResultIsCFRetained(Quartz.CGImageMetadataCreateMutable) 27 m = Quartz.CGImageMetadataCreateMutable() 28 self.assertIsInstance(m, Quartz.CGImageMetadataRef) 29 30 self.assertResultIsCFRetained(Quartz.CGImageMetadataCreateMutableCopy) 31 m2 = Quartz.CGImageMetadataCreateMutableCopy(m) 32 self.assertIsInstance(m2, Quartz.CGImageMetadataRef) 33 34 self.assertResultIsCFRetained(Quartz.CGImageMetadataTagCreate) 35 self.assertResultHasType(Quartz.CGImageMetadataTagCopyValue, objc._C_ID) 36 t = Quartz.CGImageMetadataTagCreate( 37 Quartz.kCGImageMetadataNamespaceExif, 38 Quartz.kCGImageMetadataPrefixExif, 39 "name", 40 Quartz.kCGImageMetadataTypeString, 41 "value") 42 self.assertIsInstance(t, Quartz.CGImageMetadataTagRef) 43 44 self.assertResultIsCFRetained(Quartz.CGImageMetadataTagCopyNamespace) 45 self.assertResultIsCFRetained(Quartz.CGImageMetadataTagCopyPrefix) 46 self.assertResultIsCFRetained(Quartz.CGImageMetadataTagCopyName) 47 self.assertResultHasType(Quartz.CGImageMetadataTagCopyValue, objc._C_ID) 48 self.assertResultIsCFRetained(Quartz.CGImageMetadataTagCopyValue) 49 self.assertResultIsCFRetained(Quartz.CGImageMetadataTagCopyQualifiers) 50 self.assertResultIsCFRetained(Quartz.CGImageMetadataCopyTags) 51 self.assertResultIsCFRetained(Quartz.CGImageMetadataCopyTagWithPath) 52 self.assertResultIsCFRetained(Quartz.CGImageMetadataCopyStringValueWithPath) 53 self.assertResultHasType(Quartz.CGImageMetadataRegisterNamespaceForPrefix, objc._C_BOOL) 54 self.assertArgIsOut(Quartz.CGImageMetadataRegisterNamespaceForPrefix, 3) 55 self.assertResultHasType(Quartz.CGImageMetadataSetTagWithPath, objc._C_BOOL) 56 self.assertResultHasType(Quartz.CGImageMetadataSetValueWithPath, objc._C_BOOL) 57 self.assertArgHasType(Quartz.CGImageMetadataSetValueWithPath, 3, objc._C_ID) 58 self.assertResultHasType(Quartz.CGImageMetadataRemoveTagWithPath, objc._C_BOOL) 59 60 CGImageMetadataTagBlock = objc._C_BOOL + b'@@' 61 self.assertArgIsBlock(Quartz.CGImageMetadataEnumerateTagsUsingBlock, 3, CGImageMetadataTagBlock) 62 63 self.assertResultIsCFRetained(Quartz.CGImageMetadataCopyTagMatchingImageProperty) 64 self.assertResultHasType(Quartz.CGImageMetadataSetValueMatchingImageProperty, objc._C_BOOL) 65 self.assertArgHasType(Quartz.CGImageMetadataSetValueMatchingImageProperty, 3, objc._C_ID) 66 self.assertResultIsCFRetained(Quartz.CGImageMetadataCreateXMPData) 67 self.assertResultIsCFRetained(Quartz.CGImageMetadataCreateFromXMPData) 68 69 70 @min_os_level('10.8') 71 def testConstants10_8(self): 72 self.assertIsInstance(Quartz.kCGImageMetadataNamespaceExif, unicode) 73 self.assertIsInstance(Quartz.kCGImageMetadataNamespaceExifAux, unicode) 74 self.assertIsInstance(Quartz.kCGImageMetadataNamespaceDublinCore, unicode) 75 self.assertIsInstance(Quartz.kCGImageMetadataNamespaceIPTCCore, unicode) 76 self.assertIsInstance(Quartz.kCGImageMetadataNamespacePhotoshop, unicode) 77 self.assertIsInstance(Quartz.kCGImageMetadataNamespaceTIFF, unicode) 78 self.assertIsInstance(Quartz.kCGImageMetadataNamespaceXMPBasic, unicode) 79 self.assertIsInstance(Quartz.kCGImageMetadataNamespaceXMPRights, unicode) 80 self.assertIsInstance(Quartz.kCGImageMetadataPrefixExif, unicode) 81 self.assertIsInstance(Quartz.kCGImageMetadataPrefixExifAux, unicode) 82 self.assertIsInstance(Quartz.kCGImageMetadataPrefixDublinCore, unicode) 83 self.assertIsInstance(Quartz.kCGImageMetadataPrefixIPTCCore, unicode) 84 self.assertIsInstance(Quartz.kCGImageMetadataPrefixPhotoshop, unicode) 85 self.assertIsInstance(Quartz.kCGImageMetadataPrefixTIFF, unicode) 86 self.assertIsInstance(Quartz.kCGImageMetadataPrefixXMPBasic, unicode) 87 self.assertIsInstance(Quartz.kCGImageMetadataPrefixXMPRights, unicode) 88 89 self.assertEqual(Quartz.kCGImageMetadataTypeInvalid, -1) 90 self.assertEqual(Quartz.kCGImageMetadataTypeDefault, 0) 91 self.assertEqual(Quartz.kCGImageMetadataTypeString, 1) 92 self.assertEqual(Quartz.kCGImageMetadataTypeArrayUnordered, 2) 93 self.assertEqual(Quartz.kCGImageMetadataTypeArrayOrdered, 3) 94 self.assertEqual(Quartz.kCGImageMetadataTypeAlternateArray, 4) 95 self.assertEqual(Quartz.kCGImageMetadataTypeAlternateText, 5) 96 self.assertEqual(Quartz.kCGImageMetadataTypeStructure, 6) 97 98 self.assertIsInstance(Quartz.kCGImageMetadataEnumerateRecursively, unicode) 99 self.assertIsInstance(Quartz.kCFErrorDomainCGImageMetadata, unicode) 100 101 self.assertEqual(Quartz.kCGImageMetadataErrorUnknown, 0) 102 self.assertEqual(Quartz.kCGImageMetadataErrorUnsupportedFormat, 1) 103 self.assertEqual(Quartz.kCGImageMetadataErrorBadArgument, 2) 104 self.assertEqual(Quartz.kCGImageMetadataErrorConflictingArguments, 3) 105 self.assertEqual(Quartz.kCGImageMetadataErrorPrefixConflict, 4) 106 107 108 109if __name__ == "__main__": 110 main() 111