1from PyObjCTools.TestSupport import * 2from CoreFoundation import * 3 4 5class TestLocale (TestCase): 6 def testTypes(self): 7 self.failUnlessIsCFType(CFLocaleRef) 8 9 def testGetTypeID(self): 10 self.failUnless(isinstance(CFLocaleGetTypeID(), (int, long))) 11 12 def testInspection(self): 13 14 locale = CFLocaleGetSystem() 15 self.failUnless(isinstance(locale, CFLocaleRef)) 16 17 locale = CFLocaleCopyCurrent() 18 self.failUnless(isinstance(locale, CFLocaleRef)) 19 20 idents = CFLocaleCopyAvailableLocaleIdentifiers() 21 self.failUnless(isinstance(idents, CFArrayRef)) 22 23 codes = CFLocaleCopyISOLanguageCodes() 24 self.failUnless(isinstance(codes, CFArrayRef)) 25 26 codes = CFLocaleCopyISOCountryCodes() 27 self.failUnless(isinstance(codes, CFArrayRef)) 28 29 codes = CFLocaleCopyISOCurrencyCodes() 30 self.failUnless(isinstance(codes, CFArrayRef)) 31 32 33 34 val = CFLocaleCreateCanonicalLanguageIdentifierFromString(None, "de_DE") 35 self.failUnless(isinstance(val, unicode)) 36 self.failUnless(val == 'de-DE') 37 38 val = CFLocaleCreateCanonicalLocaleIdentifierFromString(None, "de_DE") 39 self.failUnless(isinstance(val, unicode)) 40 self.assertEquals(val, 'de_DE') 41 42 val = CFLocaleCreateCanonicalLocaleIdentifierFromScriptManagerCodes(None, 55, 75) 43 self.failUnless(isinstance(val, unicode)) 44 45 dct = CFLocaleCreateComponentsFromLocaleIdentifier(None, "nl_NL") 46 self.failUnless(dct["locale:country code"] == 'NL') 47 self.failUnless(dct["locale:language code"] == 'nl') 48 49 val = CFLocaleCreateLocaleIdentifierFromComponents(None, dct) 50 self.failUnless(isinstance(val, unicode)) 51 self.assertEquals(val, 'nl_NL') 52 53 locale = CFLocaleCreate(None, "nl_NL") 54 self.failUnless(isinstance(locale, CFLocaleRef)) 55 56 locale = CFLocaleCreateCopy(None, locale) 57 self.failUnless(isinstance(locale, CFLocaleRef)) 58 59 ident = CFLocaleGetIdentifier(locale) 60 self.failUnless(ident == "nl_NL") 61 62 v = CFLocaleGetValue(locale, kCFLocaleDecimalSeparator) 63 self.failUnless(v == ',') 64 65 v = CFLocaleCopyDisplayNameForPropertyValue(locale, kCFLocaleIdentifier, "nl_NL") 66 self.failUnless(v is None or isinstance(v, unicode)) 67 self.failUnless(v == u'Nederlands (Nederland)') 68 69 70 def testConstants(self): 71 72 self.failUnless(isinstance( kCFLocaleIdentifier, unicode)) 73 self.failUnless(isinstance( kCFLocaleLanguageCode, unicode)) 74 self.failUnless(isinstance( kCFLocaleCountryCode, unicode)) 75 self.failUnless(isinstance( kCFLocaleScriptCode, unicode)) 76 self.failUnless(isinstance( kCFLocaleVariantCode, unicode)) 77 self.failUnless(isinstance( kCFLocaleExemplarCharacterSet, unicode)) 78 self.failUnless(isinstance( kCFLocaleCalendarIdentifier, unicode)) 79 self.failUnless(isinstance( kCFLocaleCalendar, unicode)) 80 self.failUnless(isinstance( kCFLocaleCollationIdentifier, unicode)) 81 self.failUnless(isinstance( kCFLocaleUsesMetricSystem, unicode)) 82 self.failUnless(isinstance( kCFLocaleMeasurementSystem, unicode)) 83 self.failUnless(isinstance( kCFLocaleDecimalSeparator, unicode)) 84 self.failUnless(isinstance( kCFLocaleGroupingSeparator, unicode)) 85 self.failUnless(isinstance( kCFLocaleCurrencySymbol, unicode)) 86 self.failUnless(isinstance( kCFLocaleCurrencyCode, unicode)) 87 self.failUnless(isinstance( kCFGregorianCalendar, unicode)) 88 self.failUnless(isinstance( kCFBuddhistCalendar, unicode)) 89 self.failUnless(isinstance( kCFChineseCalendar, unicode)) 90 self.failUnless(isinstance( kCFHebrewCalendar, unicode)) 91 self.failUnless(isinstance( kCFIslamicCalendar, unicode)) 92 self.failUnless(isinstance( kCFIslamicCivilCalendar, unicode)) 93 self.failUnless(isinstance( kCFJapaneseCalendar, unicode)) 94 95 @min_os_level('10.5') 96 def testFunctions10_5(self): 97 codes = CFLocaleCopyCommonISOCurrencyCodes() 98 self.failUnless(isinstance(codes, CFArrayRef)) 99 100 codes = CFLocaleCopyPreferredLanguages() 101 self.failUnless(isinstance(codes, CFArrayRef)) 102 103 @min_os_level('10.5') 104 def testConstants10_5(self): 105 self.failUnless(isinstance( kCFLocaleCurrentLocaleDidChangeNotification, unicode)) 106 107if __name__ == "__main__": 108 main() 109