def testInspection(self): now = CoreFoundation.CFAbsoluteTimeGetCurrent() nowtm = time.localtime() dt = CoreFoundation.CFDateCreate(None, now) self.assertIsInstance(dt, NSDate) self.assertEqual(CoreFoundation.CFDateGetAbsoluteTime(dt), now) dt2 = CoreFoundation.CFDateCreate(None, now + 1000) self.assertEqual( CoreFoundation.CFDateGetTimeIntervalSinceDate(dt2, dt), 1000) cmp = CoreFoundation.CFDateCompare(dt, dt2, 0) self.assertLessThan(cmp, 0) dt = CoreFoundation.CFGregorianDate() dt.month = 12 self.assertIs( CoreFoundation.CFGregorianDateIsValid( dt, CoreFoundation.kCFGregorianUnitsMonths), True, ) dt.month = 99 self.assertIs( CoreFoundation.CFGregorianDateIsValid( dt, CoreFoundation.kCFGregorianUnitsMonths), False, ) tz = CoreFoundation.CFTimeZoneCopyDefault() dt.year = 2008 dt.day = 1 dt.month = 1 abstime = CoreFoundation.CFGregorianDateGetAbsoluteTime(dt, tz) self.assertIsInstance(abstime, float) dt = CoreFoundation.CFAbsoluteTimeGetGregorianDate(now, tz) self.assertEqual(dt.year, nowtm.tm_year) self.assertEqual(dt.month, nowtm.tm_mon) self.assertEqual(dt.day, nowtm.tm_mday) self.assertEqual(dt.hour, nowtm.tm_hour) self.assertEqual(dt.minute, nowtm.tm_min) units = CoreFoundation.CFGregorianUnits(days=1) stamp = CoreFoundation.CFAbsoluteTimeAddGregorianUnits(now, tz, units) self.assertEqual(stamp - now, 24 * 3600) units = CoreFoundation.CFAbsoluteTimeGetDifferenceAsGregorianUnits( stamp, now, tz, CoreFoundation.kCFGregorianAllUnits) self.assertEqual(units.days, 1) self.assertEqual(units.seconds, 0) v = CoreFoundation.CFAbsoluteTimeGetDayOfWeek(now, tz) self.assertEqual(v, nowtm.tm_wday + 1) v = CoreFoundation.CFAbsoluteTimeGetDayOfYear(now, tz) self.assertEqual(v, nowtm.tm_yday) v = CoreFoundation.CFAbsoluteTimeGetWeekOfYear(now, tz) self.assertIsInstance(v, int)