1from PyObjCTools.TestSupport import * 2 3from SystemConfiguration import * 4 5class TestSCNetworkConfiguration (TestCase): 6 7 def testTypes(self): 8 self.failUnless(isinstance(SCNetworkInterfaceRef, objc.objc_class)) 9 self.failUnless(isinstance(SCBondStatusRef, objc.objc_class)) 10 self.failUnless(isinstance(SCNetworkProtocolRef, objc.objc_class)) 11 self.failUnless(isinstance(SCNetworkServiceRef, objc.objc_class)) 12 self.failUnless(isinstance(SCNetworkSetRef, objc.objc_class)) 13 14 self.failUnless(SCBondInterfaceRef is SCNetworkInterfaceRef) 15 self.failUnless(SCVLANInterfaceRef is SCNetworkInterfaceRef) 16 17 18 def testConstants(self): 19 self.failUnless(isinstance(kSCNetworkInterfaceType6to4, unicode)) 20 self.failUnless(isinstance(kSCNetworkInterfaceTypeBluetooth, unicode)) 21 self.failUnless(isinstance(kSCNetworkInterfaceTypeBond, unicode)) 22 self.failUnless(isinstance(kSCNetworkInterfaceTypeEthernet, unicode)) 23 self.failUnless(isinstance(kSCNetworkInterfaceTypeFireWire, unicode)) 24 self.failUnless(isinstance(kSCNetworkInterfaceTypeIEEE80211, unicode)) 25 self.failUnless(isinstance(kSCNetworkInterfaceTypeL2TP, unicode)) 26 self.failUnless(isinstance(kSCNetworkInterfaceTypeIrDA, unicode)) 27 self.failUnless(isinstance(kSCNetworkInterfaceTypeModem, unicode)) 28 self.failUnless(isinstance(kSCNetworkInterfaceTypePPP, unicode)) 29 self.failUnless(isinstance(kSCNetworkInterfaceTypePPTP, unicode)) 30 self.failUnless(isinstance(kSCNetworkInterfaceTypeSerial, unicode)) 31 self.failUnless(isinstance(kSCNetworkInterfaceTypeVLAN, unicode)) 32 self.failUnless(isinstance(kSCNetworkInterfaceTypeWWAN, unicode)) 33 self.failUnless(isinstance(kSCNetworkInterfaceTypeIPv4, unicode)) 34 35 self.failUnless(isinstance(kSCNetworkInterfaceIPv4, SCNetworkInterfaceRef)) 36 37 self.assertEquals(kSCBondStatusOK, 0) 38 self.assertEquals(kSCBondStatusLinkInvalid, 1) 39 self.assertEquals(kSCBondStatusNoPartner, 2) 40 self.assertEquals(kSCBondStatusNotInActiveGroup, 3) 41 self.assertEquals(kSCBondStatusUnknown, 999) 42 43 self.failUnless(isinstance(kSCBondStatusDeviceAggregationStatus, unicode)) 44 self.failUnless(isinstance(kSCBondStatusDeviceCollecting, unicode)) 45 self.failUnless(isinstance(kSCBondStatusDeviceDistributing, unicode)) 46 47 self.failUnless(isinstance(kSCNetworkProtocolTypeAppleTalk, unicode)) 48 self.failUnless(isinstance(kSCNetworkProtocolTypeDNS, unicode)) 49 self.failUnless(isinstance(kSCNetworkProtocolTypeIPv4, unicode)) 50 self.failUnless(isinstance(kSCNetworkProtocolTypeIPv6, unicode)) 51 self.failUnless(isinstance(kSCNetworkProtocolTypeProxies, unicode)) 52 self.failUnless(isinstance(kSCNetworkProtocolTypeSMB, unicode)) 53 54 def testFunctions(self): 55 56 r = SCNetworkInterfaceGetTypeID() 57 self.failUnless(isinstance(r, (int, long))) 58 59 r = SCNetworkInterfaceCopyAll() 60 self.failUnless(isinstance(r, CFArrayRef)) 61 self.failUnless(len(r) > 0) 62 63 for iface in r: 64 if SCNetworkInterfaceGetBSDName(iface).startswith('en'): 65 break 66 67 r = SCNetworkInterfaceGetSupportedInterfaceTypes(iface) 68 self.failUnless(isinstance(r, CFArrayRef)) 69 self.failUnless(isinstance(r[0], unicode)) 70 71 r = SCNetworkInterfaceGetSupportedProtocolTypes(iface) 72 self.failUnless(isinstance(r, CFArrayRef)) 73 self.failUnless(isinstance(r[0], unicode)) 74 75 r = SCNetworkInterfaceCreateWithInterface(iface, kSCNetworkInterfaceTypeL2TP) 76 self.failUnless(r is None or isinstance(r, SCNetworkInterfaceRef)) 77 78 r = SCNetworkInterfaceGetBSDName(iface) 79 self.failUnless(isinstance(r, unicode)) 80 81 r = SCNetworkInterfaceGetConfiguration(iface) 82 self.failUnless(r is None or isinstance(r, CFDictionaryRef)) 83 84 r = SCNetworkInterfaceGetExtendedConfiguration(iface, "EAPOL") 85 self.failUnless(r is None or isinstance(r, CFDictionaryRef)) 86 87 r = SCNetworkInterfaceGetHardwareAddressString(iface) 88 self.failUnless(isinstance(r, unicode)) 89 90 r = SCNetworkInterfaceGetInterface(iface) 91 self.failUnless(r is None) 92 93 r = SCNetworkInterfaceGetInterfaceType(iface) 94 self.failUnless(isinstance(r, unicode)) 95 96 r = SCNetworkInterfaceGetLocalizedDisplayName(iface) 97 self.failUnless(isinstance(r, unicode)) 98 99 r = SCNetworkInterfaceSetConfiguration(iface, {}) 100 self.failUnless(r is True or r is False) 101 102 r = SCNetworkInterfaceSetExtendedConfiguration(iface, "OC", {}) 103 self.failUnless(r is True or r is False) 104 105 r, current, active, available = SCNetworkInterfaceCopyMediaOptions(iface, 106 None, None, None, False) 107 self.failUnless(r is True) 108 self.failUnless(isinstance(current, CFDictionaryRef)) 109 self.failUnless(isinstance(active, CFDictionaryRef)) 110 self.failUnless(isinstance(available, CFArrayRef)) 111 112 r = SCNetworkInterfaceCopyMediaSubTypes(available) 113 self.failUnless(isinstance(r, CFArrayRef)) 114 for item in r: 115 self.failUnless(isinstance(item, unicode)) 116 117 r = SCNetworkInterfaceCopyMediaSubTypeOptions(available, r[1]) 118 self.failUnless(isinstance(r, CFArrayRef)) 119 120 r, mtu_cur, mtu_min, mtu_max = SCNetworkInterfaceCopyMTU(iface, None, None, None) 121 self.failUnless(r is True) 122 self.failUnless(isinstance(mtu_cur, (int, long))) 123 self.failUnless(isinstance(mtu_min, (int, long))) 124 self.failUnless(isinstance(mtu_max, (int, long))) 125 126 r = SCNetworkInterfaceSetMediaOptions(iface, 127 current['MediaSubType'], 128 current['MediaOptions']) 129 self.failUnless(r is True or r is False) 130 131 r = SCNetworkInterfaceSetMTU(iface, mtu_cur) 132 self.failUnless(r is True or r is False) 133 134 r = SCNetworkInterfaceForceConfigurationRefresh(iface) 135 self.failUnless(r is True or r is False) 136 137 prefs = SCPreferencesCreate(None, "SystemConfiguration", None) 138 self.failUnless(isinstance(prefs, SCPreferencesRef)) 139 140 a = SCBondInterfaceCopyAll(prefs) 141 self.failUnless(isinstance(a, CFArrayRef)) 142 143 a = SCBondInterfaceCopyAvailableMemberInterfaces(prefs) 144 self.failUnless(isinstance(a, CFArrayRef)) 145 146 iface = SCBondInterfaceCreate(prefs) 147 self.failUnless(iface is None or isinstance(iface, SCBondInterfaceRef)) 148 149 if iface is not None: 150 a = SCBondInterfaceGetMemberInterfaces(iface) 151 self.failUnless(isinstance(a, CFArrayRef)) 152 153 o = SCBondInterfaceGetOptions(iface) 154 self.failUnless(o is None or isinstance(o, CFDictionaryRef)) 155 156 r = SCBondInterfaceSetMemberInterfaces(iface, SCNetworkInterfaceCopyAll()) 157 self.failUnless(r is True or r is False) 158 159 r = SCBondInterfaceSetLocalizedDisplayName(iface, "pyobjc.bond") 160 self.failUnless(r is True or r is False) 161 162 163 r = SCBondInterfaceSetOptions(iface, {}) 164 self.failUnless(r is True or r is False) 165 166 st = SCBondInterfaceCopyStatus(iface) 167 self.failUnless(st is None or isinstance(st, SCBondStatusRef)) 168 169 a = SCBondStatusGetMemberInterfaces(iface) 170 self.failUnless(a is None or isinstance(a, CFArrayRef)) 171 172 st = SCBondStatusGetInterfaceStatus(iface, None) 173 self.failUnless(a is None or isinstance(a, CFDictionaryRef)) 174 175 r = SCBondInterfaceRemove(iface) 176 self.failUnless(r is True) 177 178 r = SCBondStatusGetTypeID() 179 self.failUnless(isinstance(r, (int, long))) 180 181 a = SCVLANInterfaceCopyAll(prefs) 182 self.failUnless(isinstance(a, CFArrayRef)) 183 184 a = SCVLANInterfaceCopyAvailablePhysicalInterfaces() 185 self.failUnless(isinstance(a, CFArrayRef)) 186 187 iface = SCVLANInterfaceCreate(prefs, a[0], 99) 188 self.failUnless(isinstance(iface, SCVLANInterfaceRef)) 189 190 r = SCVLANInterfaceGetPhysicalInterface(iface) 191 self.failUnless(r is a[0]) 192 193 t = SCVLANInterfaceGetTag(iface) 194 self.assertEquals(t, 99) 195 196 t = SCVLANInterfaceGetOptions(iface) 197 self.failUnless(t is None or isinstance(t, CFDictionaryRef)) 198 199 r = SCVLANInterfaceSetPhysicalInterfaceAndTag(iface, a[0], 42) 200 self.failUnless(r is True) 201 202 r = SCVLANInterfaceSetLocalizedDisplayName(iface, "octest") 203 self.failUnless(r is True) 204 205 r = SCVLANInterfaceSetOptions(iface, {"name": "foo"}) 206 self.failUnless(r is True) 207 208 t = SCVLANInterfaceGetOptions(iface) 209 self.failUnless(isinstance(t, CFDictionaryRef)) 210 211 r = SCVLANInterfaceRemove(iface) 212 self.failUnless(r is True) 213 214 r = SCNetworkProtocolGetTypeID() 215 self.failUnless(isinstance(r, (int, long))) 216 217 r = SCNetworkServiceGetTypeID() 218 self.failUnless(isinstance(r, (int, long))) 219 220 r = SCNetworkSetGetTypeID() 221 self.failUnless(isinstance(r, (int, long))) 222 223 r = SCNetworkServiceCopyAll(prefs) 224 self.failUnlessIsInstance(r, CFArrayRef) 225 226 serv = r[0] 227 self.failUnlessIsInstance(serv, SCNetworkServiceRef) 228 prot = SCNetworkServiceCopyProtocol(serv, kSCNetworkProtocolTypeIPv4) 229 self.failUnlessIsInstance(prot, SCNetworkProtocolRef) 230 231 conf = SCNetworkProtocolGetConfiguration(prot) 232 self.failUnlessIsInstance(conf, CFDictionaryRef) 233 234 enabled = SCNetworkProtocolGetEnabled(prot) 235 self.failUnlessIsInstance(enabled, bool) 236 237 pr = SCNetworkProtocolGetProtocolType(prot) 238 self.failUnlessIsInstance(pr, unicode) 239 240 v = SCNetworkProtocolSetConfiguration(prot, conf) 241 self.failUnlessIsInstance(v, bool) 242 243 v = SCNetworkProtocolSetEnabled(prot, enabled) 244 self.failUnlessIsInstance(v, bool) 245 246 v = SCNetworkServiceAddProtocolType(serv, pr) 247 self.failUnlessIsInstance(v, bool) 248 249 250 v = SCNetworkServiceCopyProtocols(serv) 251 self.failUnlessIsInstance(v, CFArrayRef) 252 if v: 253 self.failUnlessIsInstance(v[0], SCNetworkProtocolRef) 254 255 256 iface = SCNetworkServiceGetInterface(serv) 257 self.failUnlessIsInstance(iface, SCNetworkInterfaceRef) 258 259 v = SCNetworkServiceCreate(prefs, iface) 260 self.failUnlessIsInstance(v, SCNetworkServiceRef) 261 262 v = s2 = SCNetworkServiceCopy(prefs, SCNetworkServiceGetServiceID(serv)) 263 self.failUnlessIsInstance(v, SCNetworkServiceRef) 264 265 v = SCNetworkServiceGetEnabled(serv) 266 self.failUnlessIsInstance(v, bool) 267 268 v = SCNetworkServiceGetName(serv) 269 self.failUnlessIsInstance(v, unicode) 270 271 self.failUnlessResultIsCFRetained(SCNetworkServiceCopyProtocol) 272 273 v = SCNetworkServiceRemoveProtocolType(s2, kSCNetworkProtocolTypeIPv4) 274 self.failUnlessIsInstance(v, bool) 275 276 v = SCNetworkServiceRemove(s2) 277 self.failUnlessIsInstance(v, bool) 278 279 v = SCNetworkServiceSetEnabled(serv, SCNetworkServiceGetEnabled(serv)) 280 self.failUnlessIsInstance(v, bool) 281 282 v = SCNetworkServiceSetName(serv, SCNetworkServiceGetName(serv)) 283 self.failUnlessIsInstance(v, bool) 284 285 set = SCNetworkSetCopyCurrent(prefs) 286 self.failUnlessIsInstance(set, SCNetworkSetRef) 287 288 s2 = SCNetworkServiceCopy(prefs, SCNetworkServiceGetServiceID(serv)) 289 290 v = SCNetworkSetAddService(set, s2) 291 self.failUnlessIsInstance(v, bool) 292 293 294 v = SCNetworkSetContainsInterface(set, iface) 295 self.failUnlessIsInstance(v, bool) 296 297 v = SCNetworkSetCopyAll(prefs) 298 self.failUnlessIsInstance(v, CFArrayRef) 299 300 v = SCNetworkSetCopyServices(set) 301 self.failUnlessIsInstance(v, CFArrayRef) 302 303 v = SCNetworkSetCreate(prefs) 304 self.failUnlessIsInstance(v, SCNetworkSetRef) 305 306 v = SCNetworkSetCopy(prefs, SCNetworkSetGetSetID(set)) 307 self.failUnlessIsInstance(v, SCNetworkSetRef) 308 309 v = SCNetworkSetRemove(v) 310 self.failUnlessIsInstance(v, bool) 311 312 v = SCNetworkSetGetName(set) 313 self.failUnlessIsInstance(v, unicode) 314 315 v = SCNetworkSetGetSetID(set) 316 self.failUnlessIsInstance(v, unicode) 317 318 v = SCNetworkSetGetServiceOrder(set) 319 self.failUnlessIsInstance(v, CFArrayRef) 320 321 v = SCNetworkSetSetName(set, SCNetworkSetGetName(set)) 322 self.failUnlessIsInstance(v, bool) 323 324 v = SCNetworkSetSetServiceOrder(set, SCNetworkSetGetServiceOrder(set)) 325 self.failUnlessIsInstance(v, bool) 326 327 v = SCNetworkSetSetCurrent(SCNetworkSetCopyCurrent(prefs)) 328 self.failUnlessIsInstance(v, bool) 329 330 331 @min_os_level('10.5') 332 def testFunctions10_5(self): 333 prefs = SCPreferencesCreate(None, "SystemConfiguration", None) 334 self.failUnless(isinstance(prefs, SCPreferencesRef)) 335 336 r = SCNetworkServiceCopyAll(prefs) 337 self.failUnlessIsInstance(r, CFArrayRef) 338 serv = SCNetworkServiceCopy(prefs, SCNetworkServiceGetServiceID(r[0])) 339 340 v = SCNetworkServiceEstablishDefaultConfiguration(serv) 341 self.failUnlessIsInstance(v, bool) 342 343 344 345if __name__ == "__main__": 346 main() 347