Skip to content

Commit 2f01f34

Browse files
committed
Skip some parts of tetsing on unassignable addresses
The get_broadcast(), get_ipaddr(), and get_netmask() functions end up with "[Errno 99] Cannot assign requested address" on my enp0s25 (DOWN)
1 parent d05dd4c commit 2f01f34

File tree

1 file changed

+23
-11
lines changed

1 file changed

+23
-11
lines changed

tests/test_ethtool.py

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -98,12 +98,20 @@ def _functions_accepting_devnames(self, devname):
9898

9999
scraped = ifconfig.get_device_by_name(devname)
100100

101-
self.assertIsString(ethtool.get_broadcast(devname))
102-
103-
# Broadcast is optional in ifconfig output
104-
if scraped.broadcast:
105-
self.assertEqualIpv4Str(ethtool.get_broadcast(devname),
106-
scraped.broadcast)
101+
try:
102+
broadcast = ethtool.get_broadcast(devname)
103+
except (OSError, IOError):
104+
# Some devices might end up with
105+
# [Errno 99] Cannot assign requested address
106+
# That's IOError on 2.7, OSError on 3
107+
assignable = False
108+
else:
109+
assignable = True
110+
self.assertIsString(broadcast)
111+
112+
# Broadcast is optional in ifconfig output
113+
if scraped.broadcast:
114+
self.assertEqualIpv4Str(broadcast, scraped.broadcast)
107115

108116
self.assertIsStringExceptForLoopback(ethtool.get_businfo, devname,
109117
'[Errno 95] Operation not supported')
@@ -116,15 +124,19 @@ def _functions_accepting_devnames(self, devname):
116124
self.assertIsString(ethtool.get_hwaddr(devname))
117125
self.assertEqualHwAddr(ethtool.get_hwaddr(devname),
118126
scraped.hwaddr)
119-
self.assertIsString(ethtool.get_ipaddr(devname))
120-
self.assertEqual(ethtool.get_ipaddr(devname), scraped.inet)
127+
128+
if assignable:
129+
self.assertIsString(ethtool.get_ipaddr(devname))
130+
self.assertEqual(ethtool.get_ipaddr(devname), scraped.inet)
121131

122132
self.assertIsStringExceptForLoopback(ethtool.get_module, devname,
123133
'[Errno 95] Operation not supported')
124134

125-
self.assertIsString(ethtool.get_netmask(devname))
126-
self.assertEqual(ethtool.get_netmask(devname),
127-
scraped.netmask)
135+
136+
if assignable:
137+
self.assertIsString(ethtool.get_netmask(devname))
138+
self.assertEqual(ethtool.get_netmask(devname),
139+
scraped.netmask)
128140

129141
# Operation is not supported only on loopback device
130142
if devname == 'lo':

0 commit comments

Comments
 (0)