Files
2026-08-23 09:52:32 +02:00

46 lines
2.1 KiB
Python

from pathlib import Path
import unittest
from librenet_scanner.models import Host
from librenet_scanner.visual_identity import device_icon_key_for_host, os_icon_key_for_host
class V0414IconTests(unittest.TestCase):
def test_equipment_categories_are_distinct(self):
cases = [
(Host(ip='192.0.2.1', device_type='Poste'), 'workstation'),
(Host(ip='192.0.2.2', device_type='Serveur Linux'), 'server'),
(Host(ip='192.0.2.3', device_type='NAS Synology'), 'nas'),
(Host(ip='192.0.2.4', device_type='Switch'), 'switch'),
(Host(ip='192.0.2.5', device_type="Point d'accès Wi-Fi"), 'access-point'),
(Host(ip='192.0.2.6', device_type='Imprimante'), 'printer'),
(Host(ip='192.0.2.7', device_type='Pare-feu / routeur'), 'firewall'),
]
for host, expected in cases:
with self.subTest(expected=expected):
self.assertEqual(device_icon_key_for_host(host), expected)
def test_os_families(self):
self.assertEqual(os_icon_key_for_host(Host(ip='1.1.1.1', os_name='Linux 6.1')), 'linux')
self.assertEqual(os_icon_key_for_host(Host(ip='1.1.1.2', os_name='FreeBSD 14.1')), 'bsd')
self.assertEqual(os_icon_key_for_host(Host(ip='1.1.1.3', os_name='Windows 11')), 'windows')
def test_fontawesome_assets_replaced_homemade_icons(self):
root = Path(__file__).resolve().parents[1]
icons = root / 'assets' / 'icons'
expected = {
'os-linux.svg', 'os-bsd.svg', 'os-windows.svg',
'equipment-workstation.svg', 'equipment-server.svg',
'equipment-firewall.svg', 'equipment-switch.svg',
'equipment-access-point.svg', 'equipment-printer.svg',
}
self.assertTrue(expected.issubset({p.name for p in icons.glob('*.svg')}))
# Homemade 0.4.13 BSD path included a tail/staff; FA FreeBSD glyph is larger and contains many curves.
bsd=(icons/'os-bsd.svg').read_text()
self.assertIn('Font Awesome', (root/'THIRD_PARTY_ASSETS.md').read_text())
self.assertGreater(len(bsd), 500)
if __name__ == '__main__':
unittest.main()