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