• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /macosx-10.9.5/pyobjc-42/2.5/pyobjc/pyobjc-framework-SystemConfiguration/PyObjCTest/
1from PyObjCTools.TestSupport import *
2from SystemConfiguration import *
3import socket
4
5class TestSCNetworkReachability (TestCase):
6    def testTypes(self):
7        self.failUnlessIsInstance(SCNetworkReachabilityRef, objc.objc_class)
8
9    def testFunctions(self):
10        self.failUnlessResultIsCFRetained(SCNetworkReachabilityCreateWithAddressPair)
11        v = SCNetworkReachabilityCreateWithAddressPair(None,
12                ('0.0.0.0', 20990),
13                ('www.python.org', 80))
14
15
16        sd = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
17        sd.listen(5)
18
19        self.failUnlessResultIsCFRetained(SCNetworkReachabilityCreateWithAddress)
20        ref = v = SCNetworkReachabilityCreateWithAddress(None, sd.getsockname())
21        self.failUnlessIsInstance(v, SCNetworkReachabilityRef)
22
23        self.failUnlessResultIsCFRetained(SCNetworkReachabilityCreateWithName)
24        v = SCNetworkReachabilityCreateWithName(None, 'www.python.org')
25        self.failUnlessIsInstance(v, SCNetworkReachabilityRef)
26
27        v = SCNetworkReachabilityGetTypeID()
28        self.failUnlessIsInstance(v, (int, long))
29
30        self.failUnlessResultIsBOOL(SCNetworkReachabilityGetFlags)
31        v, fl = SCNetworkReachabilityGetFlags(ref, None)
32        self.failUnless(v)
33        self.failUnlessIsInstance(fl, (int, long))
34
35
36        l = []
37        def callout(ref, flags, ctx):
38            l.append([ref, flags, ctx])
39            print flags
40        ctx = object()
41        v = SCNetworkReachabilitySetCallback(ref, callout, ctx)
42        self.failUnless(v is True)
43
44
45        rl = CFRunLoopGetCurrent()
46        self.failUnlessResultIsBOOL(SCNetworkReachabilityScheduleWithRunLoop)
47        r = SCNetworkReachabilityScheduleWithRunLoop(ref, rl, kCFRunLoopCommonModes)
48
49        sd.close()
50        CFRunLoopRunInMode(kCFRunLoopDefaultMode, 1.0, False)
51
52        self.failUnlessResultIsBOOL(SCNetworkReachabilityUnscheduleFromRunLoop)
53        r = SCNetworkReachabilityUnscheduleFromRunLoop(ref, rl, kCFRunLoopCommonModes)
54
55
56
57
58
59
60
61
62
63
64if __name__ == "__main__":
65    main()
66