1from PyObjCTools.TestSupport import * 2from CoreFoundation import * 3 4 5class TestDateFormatter (TestCase): 6 def testTypeID(self): 7 self.assertIsInstance(CFDateGetTypeID(), (int, long)) 8 def testConstants(self): 9 self.assertEqual(kCFDateFormatterNoStyle , 0) 10 self.assertEqual(kCFDateFormatterShortStyle , 1) 11 self.assertEqual(kCFDateFormatterMediumStyle , 2) 12 self.assertEqual(kCFDateFormatterLongStyle , 3) 13 self.assertEqual(kCFDateFormatterFullStyle , 4) 14 self.assertIsInstance(kCFDateFormatterIsLenient, unicode) 15 self.assertIsInstance(kCFDateFormatterTimeZone, unicode) 16 self.assertIsInstance(kCFDateFormatterCalendarName, unicode) 17 self.assertIsInstance(kCFDateFormatterDefaultFormat, unicode) 18 self.assertIsInstance(kCFDateFormatterTwoDigitStartDate, unicode) 19 self.assertIsInstance(kCFDateFormatterDefaultDate, unicode) 20 self.assertIsInstance(kCFDateFormatterCalendar, unicode) 21 self.assertIsInstance(kCFDateFormatterEraSymbols, unicode) 22 self.assertIsInstance(kCFDateFormatterMonthSymbols, unicode) 23 self.assertIsInstance(kCFDateFormatterShortMonthSymbols, unicode) 24 self.assertIsInstance(kCFDateFormatterWeekdaySymbols, unicode) 25 self.assertIsInstance(kCFDateFormatterShortWeekdaySymbols, unicode) 26 self.assertIsInstance(kCFDateFormatterAMSymbol, unicode) 27 self.assertIsInstance(kCFDateFormatterPMSymbol, unicode) 28 self.assertIsInstance(kCFDateFormatterLongEraSymbols, unicode) 29 self.assertIsInstance(kCFDateFormatterVeryShortMonthSymbols, unicode) 30 self.assertIsInstance(kCFDateFormatterStandaloneMonthSymbols, unicode) 31 self.assertIsInstance(kCFDateFormatterShortStandaloneMonthSymbols, unicode) 32 self.assertIsInstance(kCFDateFormatterVeryShortStandaloneMonthSymbols, unicode) 33 self.assertIsInstance(kCFDateFormatterVeryShortWeekdaySymbols, unicode) 34 self.assertIsInstance(kCFDateFormatterStandaloneWeekdaySymbols, unicode) 35 self.assertIsInstance(kCFDateFormatterShortStandaloneWeekdaySymbols, unicode) 36 self.assertIsInstance(kCFDateFormatterVeryShortStandaloneWeekdaySymbols, unicode) 37 self.assertIsInstance(kCFDateFormatterQuarterSymbols, unicode) 38 self.assertIsInstance(kCFDateFormatterShortQuarterSymbols, unicode) 39 self.assertIsInstance(kCFDateFormatterStandaloneQuarterSymbols, unicode) 40 self.assertIsInstance( kCFDateFormatterShortStandaloneQuarterSymbols, unicode) 41 self.assertIsInstance( kCFDateFormatterGregorianStartDate, unicode) 42 43 @min_os_level('10.6') 44 def testConstants10_6(self): 45 self.assertIsInstance(kCFDateFormatterDoesRelativeDateFormattingKey, unicode) 46 47 @min_os_level('10.6') 48 def testFunction10_6(self): 49 self.assertResultIsCFRetained(CFDateFormatterCreateDateFormatFromTemplate) 50 r = CFDateFormatterCreateDateFormatFromTemplate(None, "%Y-%m-%d", 0, None) 51 self.assertIsInstance(r, unicode) 52 53 54 55 def testTypes(self): 56 self.assertIsCFType(CFDateFormatterRef) 57 58 def testInspection(self): 59 locale = CFLocaleCopyCurrent() 60 self.assertIsInstance(locale, CFLocaleRef) 61 62 date = CFDateCreate(None, CFAbsoluteTimeGetCurrent()) 63 self.assertIsInstance(date, CFDateRef) 64 65 self.assertResultIsCFRetained(CFDateFormatterCreate) 66 fmt = CFDateFormatterCreate(None, locale, kCFDateFormatterShortStyle, kCFDateFormatterLongStyle) 67 self.assertIsInstance(fmt, CFDateFormatterRef) 68 v = CFDateFormatterGetLocale(fmt) 69 self.assertEqual(CFLocaleGetIdentifier(locale), CFLocaleGetIdentifier(v)) 70 71 v = CFDateFormatterGetDateStyle(fmt) 72 self.assertEqual(v, kCFDateFormatterShortStyle) 73 74 v = CFDateFormatterGetTimeStyle(fmt) 75 self.assertEqual(v, kCFDateFormatterLongStyle) 76 77 v = CFDateFormatterGetFormat(fmt) 78 self.assertIsInstance(v, unicode) 79 CFDateFormatterSetFormat(fmt, v[:-1]) 80 v2 = CFDateFormatterGetFormat(fmt) 81 self.assertEqual(v[:-1], v2) 82 83 v = CFDateFormatterCreateStringWithDate(None, fmt, date) 84 self.assertIsInstance(v, unicode) 85 v = CFDateFormatterCreateStringWithAbsoluteTime(None, fmt, CFAbsoluteTimeGetCurrent()) 86 self.assertIsInstance(v, unicode) 87 dt, rng = CFDateFormatterCreateDateFromString(None, fmt, v, (0, len(v))) 88 self.assertIsInstance(dt, CFDateRef) 89 self.assertIsInstance(rng, CFRange) 90 ok, rng, abstime = CFDateFormatterGetAbsoluteTimeFromString(fmt, v, (0, len(v)), None) 91 self.assertIs(ok, True) 92 self.assertIsInstance(rng, CFRange) 93 self.assertIsInstance(abstime, float) 94 self.assertResultIsCFRetained(CFDateFormatterCopyProperty) 95 v = CFDateFormatterCopyProperty(fmt, kCFDateFormatterCalendarName) 96 self.assertIsInstance(v, unicode) 97 CFDateFormatterSetProperty(fmt, kCFDateFormatterCalendarName, u"gregorian") 98 v = CFDateFormatterCopyProperty(fmt, kCFDateFormatterCalendarName) 99 self.assertIsInstance(v, unicode) 100 self.assertEqual(v , u"gregorian") 101 v = CFDateFormatterCopyProperty(fmt, kCFDateFormatterIsLenient) 102 self.assertTrue(v is True or v is False) 103 CFDateFormatterSetProperty(fmt, kCFDateFormatterIsLenient, True) 104 v2 = CFDateFormatterCopyProperty(fmt, kCFDateFormatterIsLenient) 105 self.assertIs(v2, True) 106if __name__ == "__main__": 107 main() 108