• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /macosx-10.10.1/pyobjc-45/2.6/pyobjc/pyobjc-framework-SystemConfiguration/PyObjCTest/
1from PyObjCTools.TestSupport import *
2
3from SystemConfiguration import *
4import socket, sys
5
6def resolver_available():
7    try:
8        socket.gethostbyname('www.python.org')
9        return True
10    except socket.error:
11        return False
12
13class TestSCNetwork (TestCase):
14    def testConstants(self):
15        self.assertEquals(kSCNetworkFlagsTransientConnection, 1 << 0)
16        self.assertEquals(kSCNetworkFlagsReachable, 1<<1)
17        self.assertEquals(kSCNetworkFlagsConnectionRequired, 1<<2)
18        self.assertEquals(kSCNetworkFlagsConnectionAutomatic, 1<<3)
19        self.assertEquals(kSCNetworkFlagsInterventionRequired, 1<<4)
20        self.assertEquals(kSCNetworkFlagsIsLocalAddress, 1<<16)
21        self.assertEquals(kSCNetworkFlagsIsDirect, 1<<17)
22
23    def testHardFunctionsNoHost(self):
24        self.assertRaises(socket.gaierror, SCNetworkCheckReachabilityByAddress,
25            ('no-such-host.objective-python.org', 80), objc._size_sockaddr_ip4, None)
26
27    @onlyIf(resolver_available(), "No DNS resolver available")
28    def testHardFunctions(self):
29        b, flags = SCNetworkCheckReachabilityByAddress(
30                ('www.python.org', 80), objc._size_sockaddr_ip4, None)
31        self.assertIsInstance(b, bool)
32        self.assertIsInstance(flags, (int, long))
33        self.assertEqual(b, True)
34        self.assertEqual(flags, kSCNetworkFlagsReachable)
35
36
37    @onlyIf(resolver_available(), "No DNS resolver available")
38    def testFunctions(self):
39        r, flags = SCNetworkCheckReachabilityByName(b"www.python.org", None)
40        self.assertTrue(r is True or r is False)
41        self.assertTrue(isinstance(flags, (int, long)))
42
43        r = SCNetworkInterfaceRefreshConfiguration("en0")
44        self.assertTrue(r is True or r is False)
45
46
47if __name__ == "__main__":
48    main()
49