• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /macosx-10.10.1/pyobjc-45/pyobjc/pyobjc-framework-SystemConfiguration-2.5.1/PyObjCTest/
1from PyObjCTools.TestSupport import *
2from SystemConfiguration import *
3
4try:
5    unicode
6except NameError:
7    unicode = str
8
9try:
10    long
11except NameError:
12    long = int
13
14class TestSCNetworkConnection (TestCase):
15    def testTypes(self):
16        self.assertIsInstance(SCNetworkConnectionRef, objc.objc_class)
17
18    def testConstants(self):
19        self.assertEqual(kSCNetworkConnectionInvalid,  -1)
20        self.assertEqual(kSCNetworkConnectionDisconnected,  0)
21        self.assertEqual(kSCNetworkConnectionConnecting,  1)
22        self.assertEqual(kSCNetworkConnectionConnected,  2)
23        self.assertEqual(kSCNetworkConnectionDisconnecting,  3)
24
25        self.assertEqual(kSCNetworkConnectionPPPDisconnected,  0)
26        self.assertEqual(kSCNetworkConnectionPPPInitializing,  1)
27        self.assertEqual(kSCNetworkConnectionPPPConnectingLink,  2)
28        self.assertEqual(kSCNetworkConnectionPPPDialOnTraffic,  3)
29        self.assertEqual(kSCNetworkConnectionPPPNegotiatingLink,  4)
30        self.assertEqual(kSCNetworkConnectionPPPAuthenticating,  5)
31        self.assertEqual(kSCNetworkConnectionPPPWaitingForCallBack,  6)
32        self.assertEqual(kSCNetworkConnectionPPPNegotiatingNetwork,  7)
33        self.assertEqual(kSCNetworkConnectionPPPConnected,  8)
34        self.assertEqual(kSCNetworkConnectionPPPTerminating,  9)
35        self.assertEqual(kSCNetworkConnectionPPPDisconnectingLink,  10)
36        self.assertEqual(kSCNetworkConnectionPPPHoldingLinkOff,  11)
37        self.assertEqual(kSCNetworkConnectionPPPSuspended,  12)
38        self.assertEqual(kSCNetworkConnectionPPPWaitingForRedial,  13)
39
40        self.assertEqual(kSCNetworkConnectionBytesIn, b"BytesIn".decode('latin1'))
41        self.assertEqual(kSCNetworkConnectionBytesOut, b"BytesOut".decode('latin1'))
42        self.assertEqual(kSCNetworkConnectionPacketsIn, b"PacketsIn".decode('latin1'))
43        self.assertEqual(kSCNetworkConnectionPacketsOut, b"PacketsOut".decode('latin1'))
44        self.assertEqual(kSCNetworkConnectionErrorsIn, b"ErrorsIn".decode('latin1'))
45        self.assertEqual(kSCNetworkConnectionErrorsOut, b"ErrorsOut".decode('latin1'))
46
47    def testFunctions(self):
48        v = SCNetworkConnectionGetTypeID()
49        self.assertIsInstance(v, (int, long))
50
51        self.assertResultIsBOOL(SCNetworkConnectionCopyUserPreferences)
52        self.assertArgIsOut(SCNetworkConnectionCopyUserPreferences, 1)
53        self.assertArgIsOut(SCNetworkConnectionCopyUserPreferences, 2)
54        v,  servId, userOpts = SCNetworkConnectionCopyUserPreferences(None, None, None)
55        if v:
56            self.assertIsInstance(servId, unicode)
57            self.assertIsInstance(userOpts, CFDictionaryRef)
58        else:
59            self.assertTrue(servId is None)
60            self.assertTrue(userOpts is None)
61
62        def callout(ref, status, info):
63            pass
64        ctx = object()
65        v = SCNetworkConnectionCreateWithServiceID(None, "pyobjc.test.id", callout, ctx)
66
67        self.assertResultIsCFRetained(SCNetworkConnectionCopyServiceID)
68
69        # FIXME: Need test for this
70        SCNetworkConnectionGetStatus
71
72        self.assertResultIsCFRetained(SCNetworkConnectionCopyExtendedStatus)
73        self.assertResultIsCFRetained(SCNetworkConnectionCopyStatistics)
74        self.assertResultIsBOOL(SCNetworkConnectionStart)
75        self.assertResultIsBOOL(SCNetworkConnectionStop)
76        self.assertResultIsCFRetained(SCNetworkConnectionCopyUserOptions)
77        self.assertResultIsBOOL(SCNetworkConnectionScheduleWithRunLoop)
78        self.assertResultIsBOOL(SCNetworkConnectionUnscheduleFromRunLoop)
79
80
81if __name__ == "__main__":
82    main()
83