Skip to content

Commit d50b2a8

Browse files
committed
Fix tests
1 parent 82857af commit d50b2a8

File tree

1 file changed

+31
-35
lines changed

1 file changed

+31
-35
lines changed

tests/test_ethtool.py

Lines changed: 31 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@ def assertRaisesIOError(self, fn, args, errmsg):
6464
fn(*args)
6565
except IOError as e:
6666
# Check the details of the exception:
67-
self.assertEquals(e.args, (errmsg, ))
67+
enum, emsg = e.args
68+
self.assertEquals('[Errno {}] {}'.format(enum, emsg), errmsg)
6869
else:
6970
self.fail('IOError was not raised calling %s on %s' % (fn, args))
7071

@@ -99,23 +100,20 @@ def _functions_accepting_devnames(self, devname):
99100
scraped = ifconfig.get_device_by_name(devname)
100101

101102
self.assertIsString(ethtool.get_broadcast(devname))
102-
self.assertEqualIpv4Str(ethtool.get_broadcast(devname),
103-
scraped.broadcast)
103+
104+
# Broadcast is optional in ifconfig output
105+
if scraped.broadcast:
106+
self.assertEqualIpv4Str(ethtool.get_broadcast(devname),
107+
scraped.broadcast)
104108

105109
self.assertIsStringExceptForLoopback(ethtool.get_businfo, devname,
106110
'[Errno 95] Operation not supported')
107111

108-
# ethtool.get_coalesce(devname)
109-
# this gives me:
110-
# IOError: [Errno 95] Operation not supported
111-
# on my test box
112-
113112
self.assertIsInt(ethtool.get_flags(devname))
114113
# flagsint cannot be obtained from old ifconfig format
115114
if not ifconfig.oldFormat:
116115
self.assertEqual(ethtool.get_flags(devname), scraped.flagsint)
117116
self.assertIsInt(ethtool.get_gso(devname))
118-
119117
self.assertIsString(ethtool.get_hwaddr(devname))
120118
self.assertEqualHwAddr(ethtool.get_hwaddr(devname),
121119
scraped.hwaddr)
@@ -124,26 +122,26 @@ def _functions_accepting_devnames(self, devname):
124122

125123
self.assertIsStringExceptForLoopback(ethtool.get_module, devname,
126124
'[Errno 95] Operation not supported')
127-
125+
128126
self.assertIsString(ethtool.get_netmask(devname))
129127
self.assertEqual(ethtool.get_netmask(devname),
130128
scraped.netmask)
131-
132-
#self.assertRaisesIOError(ethtool.get_ringparam, (devname, ),
133-
# '[Errno 95] Operation not supported')
134-
135-
# Disabling until BZ#703089 is investigated
136-
#self.assertIsInt(ethtool.get_sg(devname))
137-
#self.assertIsInt(ethtool.get_ufo(devname))
138-
129+
130+
# Operation is not supported only on loopback device
131+
if devname == 'lo':
132+
self.assertRaisesIOError(ethtool.get_ringparam, (devname, ),
133+
'[Errno 95] Operation not supported')
134+
135+
self.assertIsInt(ethtool.get_sg(devname))
136+
self.assertIsInt(ethtool.get_ufo(devname))
137+
139138
self.assertIsInt(ethtool.get_tso(devname))
140-
141-
142-
#TODO: self.assertIsString(ethtool.set_coalesce(devname))
143-
144-
#TODO: self.assertIsString(ethtool.set_ringparam(devname))
145139

146-
#TODO: self.assertIsString(ethtool.set_tso(devname))
140+
# TODO: self.assertIsString(ethtool.set_coalesce(devname))
141+
142+
# TODO: self.assertIsString(ethtool.set_ringparam(devname))
143+
144+
# TODO: self.assertIsString(ethtool.set_tso(devname))
147145

148146
def _verify_etherinfo_object(self, ei):
149147
self.assert_(isinstance(ei, ethtool.etherinfo))
@@ -159,17 +157,17 @@ def _verify_etherinfo_object(self, ei):
159157
self.assertEqual(ei.ipv4_address, scraped.inet)
160158

161159
self.assertIsStringOrNone(ei.ipv4_broadcast)
162-
if scraped:
160+
if scraped and scraped.broadcast:
161+
# Broadcast is optional
163162
self.assertEqual(ei.ipv4_broadcast, scraped.broadcast)
164163

165164
self.assertIsInt(ei.ipv4_netmask)
166165
if scraped:
167166
self.assertEqual(ei.ipv4_netmask, scraped.get_netmask_bits())
168167

169168
self.assertIsStringOrNone(ei.mac_address)
170-
if scraped:
171-
if scraped.hwaddr:
172-
scraped.hwaddr = scraped.hwaddr.lower()
169+
if scraped and scraped.hwaddr and scraped.hwtitle.lower() != 'unspec':
170+
scraped.hwaddr = scraped.hwaddr.lower()
173171
self.assertEqualHwAddr(ei.mac_address.lower(), scraped.hwaddr)
174172

175173
i6s = ei.get_ipv6_addresses()
@@ -178,10 +176,6 @@ def _verify_etherinfo_object(self, ei):
178176
self.assertIsString(i6.address)
179177
self.assertIsInt(i6.netmask)
180178
self.assertIsString(i6.scope)
181-
self.assertEquals(str(i6),
182-
'[%s] %s/%i' % (i6.scope,
183-
i6.address,
184-
i6.netmask))
185179

186180
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
187181
# tests
@@ -208,16 +202,15 @@ def test_invalid_devices(self):
208202
self.assertRaisesNoSuchDevice(getattr(ethtool, fnname),
209203
INVALID_DEVICE_NAME, 42)
210204

211-
212205
def test_get_interface_info_invalid(self):
213206
eis = ethtool.get_interfaces_info(INVALID_DEVICE_NAME)
214207
self.assertEquals(len(eis), 1)
215208
ei = eis[0]
216209
self.assertEquals(ei.device, INVALID_DEVICE_NAME)
210+
self.assertEquals(ei.ipv4_netmask, 0)
217211
self.assertEquals(ei.ipv4_address, None)
218212
self.assertEquals(ei.ipv4_broadcast, None)
219-
self.assertEquals(ei.ipv4_netmask, 0)
220-
self.assertEquals(ei.mac_address, None)
213+
self.assertRaisesIOError(getattr, (ei, 'mac_address'), '[Errno 19] No such device')
221214

222215
def test_get_interface_info_active(self):
223216
eis = ethtool.get_interfaces_info(ethtool.get_active_devices())
@@ -231,6 +224,9 @@ def test_get_interface_info_all(self):
231224

232225
def test_get_active_devices(self):
233226
for devname in ethtool.get_active_devices():
227+
# Skip these test on tun devices
228+
if devname.startswith('tun'):
229+
continue
234230
self._functions_accepting_devnames(devname)
235231

236232
def test_etherinfo_objects(self):

0 commit comments

Comments
 (0)