Issue #1746656: make if_nameindex(), if_indextoname() and if_nametoindex()

accept and return str instead of bytes arrays. Add some more tests.
This commit is contained in:
Charles-François Natali 2011-05-20 16:55:06 +02:00
parent e724665182
commit 6071359de1
2 changed files with 48 additions and 33 deletions

View file

@ -377,10 +377,26 @@ class GeneralModuleTests(unittest.TestCase):
def testInterfaceNameIndex(self):
interfaces = socket.if_nameindex()
for index, name in interfaces:
self.assertIsInstance(index, int)
self.assertIsInstance(name, str)
# interface indices are non-zero integers
self.assertGreater(index, 0)
self.assertEqual(index, socket.if_nametoindex(name))
self.assertEqual(name, socket.if_indextoname(index))
_index = socket.if_nametoindex(name)
self.assertIsInstance(_index, int)
self.assertEqual(index, _index)
_name = socket.if_indextoname(index)
self.assertIsInstance(_name, str)
self.assertEqual(name, _name)
@unittest.skipUnless(hasattr(socket, 'if_nameindex'),
'socket.if_nameindex() not available.')
def testInvalidInterfaceNameIndex(self):
# test nonexistent interface index/name
self.assertRaises(socket.error, socket.if_indextoname, 0)
self.assertRaises(socket.error, socket.if_nametoindex, '_DEADBEEF')
# test with invalid values
self.assertRaises(TypeError, socket.if_nametoindex, 0)
self.assertRaises(TypeError, socket.if_indextoname, '_DEADBEEF')
def testRefCountGetNameInfo(self):
# Testing reference count for getnameinfo