1from PyObjCTools.TestSupport import * 2from SystemConfiguration import * 3 4#from SecurityFoundation import SFAuthorization 5 6class TestSCPreferences (TestCase): 7 def testConstants(self): 8 self.failUnlessEqual(kSCPreferencesNotificationCommit, 1<<0) 9 self.failUnlessEqual(kSCPreferencesNotificationApply, 1<<1) 10 11 def testFunctions(self): 12 self.failUnlessIsInstance(SCPreferencesGetTypeID(), (int, long)) 13 14 ref = SCPreferencesCreate(None, "pyobjc.test", "pyobjc.test") 15 self.failUnlessIsInstance(ref, SCPreferencesRef) 16 17 self.failUnlessResultIsBOOL(SCPreferencesLock) 18 self.failUnlessArgIsBOOL(SCPreferencesLock, 1) 19 v = SCPreferencesLock(ref, False) 20 self.failUnlessIsInstance(v, bool) 21 22 self.failUnlessResultIsBOOL(SCPreferencesUnlock) 23 v = SCPreferencesUnlock(ref) 24 self.failUnlessIsInstance(v, bool) 25 26 self.failUnlessResultIsBOOL(SCPreferencesCommitChanges) 27 v = SCPreferencesCommitChanges(ref) 28 self.failUnlessIsInstance(v, bool) 29 30 self.failUnlessResultIsBOOL(SCPreferencesApplyChanges) 31 v = SCPreferencesApplyChanges(ref) 32 self.failUnlessIsInstance(v, bool) 33 34 r = SCPreferencesGetSignature(ref) 35 self.failUnlessIsInstance(r, CFDataRef) 36 37 r = SCPreferencesCopyKeyList(ref) 38 self.failUnlessIsInstance(r, CFArrayRef) 39 40 l = [] 41 def callback(ref, key, ctx): 42 l.append([ref, key, ctx]) 43 print key 44 ctx = object() 45 46 v = SCPreferencesSetCallback(ref, callback, ctx) 47 self.failUnless(v is True) 48 49 self.failUnlessResultIsBOOL(SCPreferencesAddValue) 50 r = SCPreferencesAddValue(ref, "use_python3", False) 51 self.failUnless(r is True) 52 53 v = SCPreferencesGetValue(ref, "use_python3") 54 self.failUnless(v is False) 55 56 v = SCPreferencesGetValue(ref, "use_python4") 57 self.failUnless(v is None) 58 59 self.failUnlessResultIsBOOL(SCPreferencesSetValue) 60 r = SCPreferencesSetValue(ref, "use_python3", "on newyearsday") 61 self.failUnless(r is True) 62 63 self.failUnlessResultIsBOOL(SCPreferencesRemoveValue) 64 r = SCPreferencesRemoveValue(ref, "use_python3") 65 66 self.failUnlessResultIsBOOL(SCPreferencesScheduleWithRunLoop) 67 rl = CFRunLoopGetCurrent() 68 r = SCPreferencesScheduleWithRunLoop(ref, rl, kCFRunLoopCommonModes) 69 CFRunLoopRunInMode(kCFRunLoopDefaultMode, 1.0, False) 70 71 self.failUnlessResultIsBOOL(SCPreferencesUnscheduleFromRunLoop) 72 r = SCPreferencesUnscheduleFromRunLoop(ref, rl, kCFRunLoopCommonModes) 73 74 75 SCPreferencesSynchronize(ref) 76 77 78 79 def testSecurityIntegreation(self): 80 self.fail("Need Security framework wrappers") 81 #aref = SFAuthorization.authorization().authorizationRef () 82 # XXX: Security frameworks aren't wrapped yet 83 aref = None 84 ref = SCPreferencesCreateWithAuthorization(None, "pyobjc.test", "pyobjc.test", aref) 85 self.failUnlessIsInstance(ref, SCPreferencesRef) 86 87 88 89 90 91 92 93 94if __name__ == "__main__": 95 main() 96