• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /macosx-10.10.1/pyobjc-45/2.5/pyobjc/pyobjc-framework-SystemConfiguration/PyObjCTest/
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