mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-04 05:23:56 +08:00
72 lines
3.8 KiB
Python
72 lines
3.8 KiB
Python
#!/usr/bin/env python3
|
|
import json
|
|
import unittest
|
|
from generate import ROOT, vendor_for
|
|
|
|
|
|
class Aliases(unittest.TestCase):
|
|
def setUp(self):
|
|
self.vendors = json.loads((ROOT / 'tools/vendors.json').read_text())
|
|
|
|
def brand(self, name):
|
|
i = vendor_for(name, self.vendors)
|
|
return None if i is None else self.vendors[i]['slug']
|
|
|
|
def test_aliases(self):
|
|
for name in ['ASUSTek COMPUTER INC.', 'ASUSTeK Computer Inc.', 'ASUS',
|
|
'ASUS COMPUTER INTERNATIONAL']:
|
|
self.assertEqual(self.brand(name), 'asus')
|
|
for name in ["MICRO-STAR INT'L CO., LTD.", 'Micro-Star International']:
|
|
self.assertEqual(self.brand(name), 'msi')
|
|
for name in ['GIGA-BYTE TECHNOLOGY CO.,LTD.', 'GIGA-BYTE TECHNOLOGY CO. , Ltd.']:
|
|
self.assertEqual(self.brand(name), 'gigabyte')
|
|
self.assertEqual(self.brand('vivo Mobile Communication Co., Ltd.'), 'vivo')
|
|
self.assertEqual(self.brand('TP-Link Systems Inc.'), 'tplink')
|
|
self.assertEqual(self.brand('GD Midea Air-Conditioning Equipment Co.,Ltd.'), 'midea')
|
|
self.assertEqual(self.brand('Midea Group Co., Ltd.'), 'midea')
|
|
self.assertEqual(self.brand('Shanghai Imilab Technology Co.Ltd'), 'xiaomi')
|
|
self.assertEqual(self.brand('Shanghai Chuangmi Technology Co., Ltd.'), 'xiaomi')
|
|
self.assertIsNone(self.brand('Chuangming Futre Technology Co., Ltd.'))
|
|
self.assertEqual(self.brand('TCL King Electrical Appliances(Huizhou)Co.,Ltd'), 'tcl')
|
|
self.assertEqual(self.brand('Hui Zhou Gaoshengda Technology Co.,LTD'), 'tcl')
|
|
|
|
def test_haier(self):
|
|
for name in ['Qingdao Haier Technology Co.,Ltd',
|
|
'Qingdao HaierTechnology Co.,Ltd',
|
|
'QING DAO HAIER TELECOM CO.,LTD.', 'Haier']:
|
|
self.assertEqual(self.brand(name), 'haier')
|
|
self.assertIsNone(self.brand('Unrelated Haier Module Supplier'))
|
|
data = json.loads(next((ROOT / 'htdocs/luci-static/resources/oui').glob('vendors-*.json')).read_text())
|
|
mac = '34:29:EF:89:41:3C'.replace(':', '')
|
|
self.assertEqual(data['vendors'][data['prefixes'][mac[:6]]][0], 'haier')
|
|
self.assertEqual(data['vendors'][data['prefixes']['0439CB']][0], 'haier')
|
|
|
|
def test_vmware(self):
|
|
self.assertEqual(self.brand('VMware, Inc.'), 'vmware')
|
|
self.assertIsNone(self.brand('VMware Unrelated Devices'))
|
|
data = json.loads(next((ROOT / 'htdocs/luci-static/resources/oui').glob('vendors-*.json')).read_text())
|
|
for prefix in ['000569', '000C29', '001C14', '005056']:
|
|
self.assertEqual(data['vendors'][data['prefixes'][prefix]], ['vmware', 'VMware'])
|
|
|
|
def test_unrelated_names(self):
|
|
for name in ['Pegasus Technologies Inc.', 'Asustor Inc.', 'Vivotek, Inc.',
|
|
'Invivo Research Inc.', 'Dongguan Koppo Electronic Co.,Ltd',
|
|
'SHENZHEN HONOR ELECTRONIC CO.,LTD', 'Limidea Concept Pte. Ltd.',
|
|
'Gigabit Systems Inc.', 'Unrelated Module Manufacturer']:
|
|
self.assertIsNone(self.brand(name))
|
|
|
|
def test_assets(self):
|
|
data = json.loads(next((ROOT / 'htdocs/luci-static/resources/oui').glob('vendors-*.json')).read_text())
|
|
for slug, _ in data['vendors']:
|
|
self.assertTrue((ROOT / 'htdocs/luci-static/resources/oui' / (slug + '.svg')).exists())
|
|
self.assertEqual(data['vendors'][data['prefixes']['30560F']][0], 'gigabyte')
|
|
self.assertEqual(data['vendors'][data['prefixes']['E87F95']][0], 'apple')
|
|
self.assertEqual(data['vendors'][data['prefixes']['9C4782']][0], 'tplink')
|
|
self.assertEqual(data['vendors'][data['prefixes']['1841C3']][0], 'midea')
|
|
self.assertEqual(data['vendors'][data['prefixes']['607EA4']][0], 'xiaomi')
|
|
self.assertEqual(data['vendors'][data['prefixes']['0C7955']][0], 'tcl')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|