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