import netcrawl.tools.manuf.manuf as manuf
import os
import unittest
[docs]class ManufTestCase(unittest.TestCase):
MANUF_URL = "https://raw.githubusercontent.com/coolbho3k/manuf/master/manuf/test/manuf"
[docs] def setUp(self):
name= _file= os.path.join(
os.path.dirname(os.path.abspath(__file__)),
'manuf')
self.manuf = manuf.MacParser(manuf_name=name)
[docs] def test_update_update(self):
name= _file= os.path.join(
os.path.dirname(os.path.abspath(__file__)),
'manuf_update')
self.manuf.update(manuf_url=self.MANUF_URL, manuf_name=name)
assert os.path.exists(name)
os.remove(name)
[docs] def test_getAll_whenMacValid_getVendor(self):
v = self.manuf.get_all("00:00:00:00:00:00")
self.assertEqual(v.manuf, "00:00:00")
self.assertEqual(v.comment, "Officially Xerox, but 0:0:0:0:0:0 is more common")
[docs] def test_getManuf_getManuf(self):
m = self.manuf.get_manuf("08:60:6E")
v = self.manuf.get_all("08:60:6E")
self.assertEqual(m, "AsustekC")
self.assertEqual(m, v.manuf)
[docs] def test_getAll_returnClosestMatch(self):
v1 = self.manuf.get_all("00:1B:C5")
v2 = self.manuf.get_all("00:1B:C5:0D")
v3 = self.manuf.get_all("00:1B:C5:0D:00")
v4 = self.manuf.get_all("00:1B:C5:0D:00:00")
v5 = self.manuf.get_all("00:1B:C5:0E:00:00")
v6 = self.manuf.get_all("00:1B:C5:FF:00:00")
v7 = self.manuf.get_all("00:1B:C5:01:00:00")
self.assertEqual(v1.manuf, "IeeeRegi")
self.assertEqual(v1.comment, "IEEE Registration Authority")
self.assertEqual(v1, v2)
self.assertEqual(v1, v3)
self.assertEqual(v1, v4)
self.assertEqual(v1, v5)
self.assertEqual(v1, v6)
self.assertNotEqual(v1, v7)
[docs] def test_getAllWithSimpleNetmask_returnCorrectMatch(self):
v1 = self.manuf.get_all("00:1B:C5:00:00:00")
v2 = self.manuf.get_all("00:1B:C5:00:01:00")
v3 = self.manuf.get_all("00:1B:C5:00:0F:FF")
v4 = self.manuf.get_all("00:1B:C5:00:10:00")
self.assertEqual(v1.manuf, "Convergi")
self.assertEqual(v1.comment, "Converging Systems Inc.")
self.assertEqual(v1, v2)
self.assertEqual(v2, v3)
self.assertNotEqual(v3, v4)
[docs] def test_getAllWithComplexNetmask_returnCorrectMatch(self):
v1 = self.manuf.get_all("01:80:C2:00:00:2F")
self.assertEqual(v1.manuf, None)
self.assertEqual(v1.comment, None)
v2 = self.manuf.get_all("01:80:C2:00:00:30")
v3 = self.manuf.get_all("01:80:C2:00:00:37")
self.assertEqual(v2.manuf, "OAM-Multicast-DA-Class-1")
self.assertEqual(v2.comment, None)
self.assertEqual(v2, v3)
v4 = self.manuf.get_all("01:80:C2:00:00:38")
v5 = self.manuf.get_all("01:80:C2:00:00:3F")
self.assertEqual(v4.manuf, "OAM-Multicast-DA-Class-2")
self.assertEqual(v4.comment, None)
self.assertEqual(v4, v5)
v6 = self.manuf.get_all("01:80:C2:00:00:40")
self.assertEqual(v6.manuf, "All-RBridges")
self.assertEqual(v6.comment, None)
v7 = self.manuf.get_all("01:80:C2:00:00:1E")
self.assertEqual(v7.manuf, "Token-Ring-all-DTR-Concentrators")
self.assertEqual(v7.comment, None)