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