1from PyObjCTools.TestSupport import * 2from CoreFoundation import * 3import CoreFoundation 4 5try: 6 unicode 7except NameError: 8 unicode = str 9 10 11try: 12 long 13except NameError: 14 long = int 15 16 17class TestBase (TestCase): 18 @min_os_level('10.8') 19 def testConstants10_8(self): 20 self.assertEqual(kCFCoreFoundationVersionNumber10_6_6, 550.42) 21 self.assertEqual(kCFCoreFoundationVersionNumber10_6_7, 550.42) 22 self.assertEqual(kCFCoreFoundationVersionNumber10_6_8, 550.43) 23 self.assertEqual(kCFCoreFoundationVersionNumber10_7, 635.00) 24 self.assertEqual(kCFCoreFoundationVersionNumber10_7_1, 635.00) 25 self.assertEqual(kCFCoreFoundationVersionNumber10_7_2, 635.15) 26 self.assertEqual(kCFCoreFoundationVersionNumber10_7_3, 635.19) 27 self.assertEqual(kCFCoreFoundationVersionNumber10_7_4, 635.21) 28 29 30 def testConstants(self): 31 self.assertEqual(TRUE, 1) 32 self.assertEqual(FALSE, 0) 33 34 self.assertEqual(kCFCoreFoundationVersionNumber10_0, 196.40) 35 self.assertEqual(kCFCoreFoundationVersionNumber10_0_3, 196.50) 36 self.assertEqual(kCFCoreFoundationVersionNumber10_1, 226.00) 37 self.assertEqual(kCFCoreFoundationVersionNumber10_1_1, 226.00) 38 self.assertEqual(kCFCoreFoundationVersionNumber10_1_2, 227.20) 39 self.assertEqual(kCFCoreFoundationVersionNumber10_1_3, 227.20) 40 self.assertEqual(kCFCoreFoundationVersionNumber10_1_4, 227.30) 41 self.assertEqual(kCFCoreFoundationVersionNumber10_2, 263.00) 42 self.assertEqual(kCFCoreFoundationVersionNumber10_2_1, 263.10) 43 self.assertEqual(kCFCoreFoundationVersionNumber10_2_2, 263.10) 44 self.assertEqual(kCFCoreFoundationVersionNumber10_2_3, 263.30) 45 self.assertEqual(kCFCoreFoundationVersionNumber10_2_4, 263.30) 46 self.assertEqual(kCFCoreFoundationVersionNumber10_2_5, 263.50) 47 self.assertEqual(kCFCoreFoundationVersionNumber10_2_6, 263.50) 48 self.assertEqual(kCFCoreFoundationVersionNumber10_2_7, 263.50) 49 self.assertEqual(kCFCoreFoundationVersionNumber10_2_8, 263.50) 50 self.assertEqual(kCFCoreFoundationVersionNumber10_3, 299.00) 51 self.assertEqual(kCFCoreFoundationVersionNumber10_3_1, 299.00) 52 self.assertEqual(kCFCoreFoundationVersionNumber10_3_2, 299.00) 53 self.assertEqual(kCFCoreFoundationVersionNumber10_3_3, 299.30) 54 self.assertEqual(kCFCoreFoundationVersionNumber10_3_4, 299.31) 55 self.assertEqual(kCFCoreFoundationVersionNumber10_3_5, 299.31) 56 self.assertEqual(kCFCoreFoundationVersionNumber10_3_6, 299.32) 57 self.assertEqual(kCFCoreFoundationVersionNumber10_3_7, 299.33) 58 self.assertEqual(kCFCoreFoundationVersionNumber10_3_8, 299.33) 59 self.assertEqual(kCFCoreFoundationVersionNumber10_3_9, 299.35) 60 self.assertEqual(kCFCoreFoundationVersionNumber10_4, 368.00) 61 self.assertEqual(kCFCoreFoundationVersionNumber10_4_1, 368.10) 62 self.assertEqual(kCFCoreFoundationVersionNumber10_4_2, 368.11) 63 self.assertEqual(kCFCoreFoundationVersionNumber10_4_3, 368.18) 64 self.assertEqual(kCFCoreFoundationVersionNumber10_4_4_Intel, 368.26) 65 self.assertEqual(kCFCoreFoundationVersionNumber10_4_4_PowerPC, 368.25) 66 self.assertEqual(kCFCoreFoundationVersionNumber10_4_5_Intel, 368.26) 67 self.assertEqual(kCFCoreFoundationVersionNumber10_4_5_PowerPC, 368.25) 68 self.assertEqual(kCFCoreFoundationVersionNumber10_4_6_Intel, 368.26) 69 self.assertEqual(kCFCoreFoundationVersionNumber10_4_6_PowerPC, 368.25) 70 self.assertEqual(kCFCoreFoundationVersionNumber10_4_7, 368.27) 71 self.assertEqual(kCFCoreFoundationVersionNumber10_4_8, 368.27) 72 self.assertEqual(kCFCoreFoundationVersionNumber10_4_9, 368.28) 73 self.assertEqual(kCFCoreFoundationVersionNumber10_4_10, 368.28) 74 self.assertEqual(kCFCoreFoundationVersionNumber10_4_11, 368.31) 75 self.assertEqual(kCFCoreFoundationVersionNumber10_5, 476.00) 76 self.assertEqual(kCFCoreFoundationVersionNumber10_5_1, 476.00) 77 self.assertEqual(kCFCoreFoundationVersionNumber10_5_2, 476.10) 78 self.assertEqual(kCFCoreFoundationVersionNumber10_5_3, 476.13) 79 self.assertEqual(kCFCoreFoundationVersionNumber10_5_4, 476.14) 80 self.assertEqual(kCFCoreFoundationVersionNumber10_5_5, 476.15) 81 self.assertEqual(kCFCoreFoundationVersionNumber10_5_6, 476.17) 82 self.assertEqual(kCFCoreFoundationVersionNumber10_5_7, 476.18) 83 #XXX 84 #self.assertEqual(CFCoreFoundationVersionNumber10_5_8, 476.19) 85 self.assertEqual(kCFCoreFoundationVersionNumber10_6, 550.00) 86 self.assertEqual(kCFCoreFoundationVersionNumber10_6_1, 550.00) 87 self.assertEqual(kCFCoreFoundationVersionNumber10_6_2, 550.13) 88 self.assertEqual(kCFCoreFoundationVersionNumber10_6_3, 550.19) 89 self.assertEqual(kCFCoreFoundationVersionNumber10_6_4, 550.29) 90 self.assertEqual(kCFCoreFoundationVersionNumber10_6_5, 550.42) 91 92 93 self.assertEqual(kCFCompareLessThan, -1) 94 self.assertEqual(kCFCompareEqualTo, 0) 95 self.assertEqual(kCFCompareGreaterThan, 1) 96 97 self.assertEqual(kCFNotFound, -1) 98 99 100 def testStructs(self): 101 102 o = CFRange() 103 self.assertHasAttr(o, 'location') 104 self.assertHasAttr(o, 'length') 105 106 def testCFRangeMake(self): 107 r = CFRangeMake(42, 99) 108 self.assertIsInstance(r, CFRange) 109 self.assertEqual(r.location, 42) 110 self.assertEqual(r.length, 99) 111 112 def testCFNull(self): 113 self.assertIsInstance(CFNullGetTypeID(), (int, long)) 114 self.assertIsInstance(kCFNull, CFNullRef) 115 self.assertIsCFType(CFNullRef) 116 117 def testCFAllocator(self): 118 self.assertIsCFType(CFAllocatorRef) 119 120 self.assertIsInstance(CFAllocatorGetTypeID(), (int, long)) 121 self.assertIsInstance(kCFAllocatorDefault, (CFAllocatorRef, type(None))) 122 self.assertIsInstance(kCFAllocatorSystemDefault, CFAllocatorRef) 123 self.assertIsInstance(kCFAllocatorMalloc, CFAllocatorRef) 124 self.assertIsInstance(kCFAllocatorMallocZone, CFAllocatorRef) 125 self.assertIsInstance(kCFAllocatorNull, CFAllocatorRef) 126 self.assertIsInstance(kCFAllocatorUseContext, CFAllocatorRef) 127 r = CFAllocatorGetDefault() 128 self.assertIsInstance(r, CFAllocatorRef) 129 CFAllocatorSetDefault(kCFAllocatorMalloc) 130 r2 = CFAllocatorGetDefault() 131 self.assertIsInstance(r2, CFAllocatorRef) 132 self.assertIs(r2, kCFAllocatorMalloc) 133 # Restore default allocator 134 CFAllocatorSetDefault(r) 135 136 self.assertNotHasAttr(CoreFoundation, 'CFAllocatorCreate') 137 self.assertNotHasAttr(CoreFoundation, 'CFAllocatorAllocate') 138 self.assertNotHasAttr(CoreFoundation, 'CFAllocatorReallocate') 139 self.assertNotHasAttr(CoreFoundation, 'CFAllocatorDeallocate') 140 self.assertNotHasAttr(CoreFoundation, 'CFAllocatorGetContext') 141 r = CFAllocatorGetPreferredSizeForSize(kCFAllocatorDefault, 15, 0) 142 self.assertIsInstance(r, (int, long)) 143 self.assertGreaterEqual(r , 15) 144 145 def testGenericFunctions(self): 146 id = CFGetTypeID(kCFAllocatorMalloc) 147 self.assertEqual(id, CFAllocatorGetTypeID()) 148 149 v = CFCopyTypeIDDescription(CFAllocatorGetTypeID()) 150 self.assertIsInstance(v, unicode) 151 obj = CFURLCreateWithString(None, b"http://www.apple.com/".decode('ascii'), None) 152 i = CFGetRetainCount(obj) 153 self.assertIsInstance(i, (int, long)) 154 CFRetain(obj) 155 self.assertEqual(CFGetRetainCount(obj), i + 1) 156 CFRelease(obj) 157 self.assertEqual(CFGetRetainCount(obj), i) 158 159 CFRetain(obj) 160 CFMakeCollectable(obj) 161 162 del obj 163 164 i = CFEqual(kCFAllocatorMalloc, kCFAllocatorNull) 165 self.assertIs(i, False) 166 i = CFEqual(kCFAllocatorMalloc, kCFAllocatorMalloc) 167 self.assertIs(i, True) 168 i = CFHash(kCFAllocatorMalloc) 169 self.assertTrue(i, (int, long)) 170 171 v = CFCopyDescription(kCFAllocatorMalloc) 172 self.assertIsInstance(v, unicode) 173 v = CFGetAllocator(kCFAllocatorMalloc) 174 if v is not None: 175 self.assertIsInstance(v, CFAllocatorRef) 176 177 @min_os_level('10.6') 178 def testConstants10_6(self): 179 self.assertEqual(kCFCoreFoundationVersionNumber10_5, 476.00) 180 self.assertEqual(kCFCoreFoundationVersionNumber10_5_1, 476.00) 181 self.assertEqual(kCFCoreFoundationVersionNumber10_5_2, 476.10) 182 self.assertEqual(kCFCoreFoundationVersionNumber10_5_3, 476.13) 183 self.assertEqual(kCFCoreFoundationVersionNumber10_5_4, 476.14) 184 self.assertEqual(kCFCoreFoundationVersionNumber10_5_5, 476.15) 185 self.assertEqual(kCFCoreFoundationVersionNumber10_5_6, 476.17) 186 187 188if __name__ == "__main__": 189 main() 190