38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
import unittest
|
|
|
|
from app import camera_from_service, normalize_results
|
|
|
|
|
|
class CameraDiscoveryTests(unittest.TestCase):
|
|
def test_extracts_alta_key_and_hostname(self):
|
|
camera = camera_from_service(
|
|
"ABH7-C62U-GC3E._vaioncam._tcp.local.",
|
|
"avacam-abh7-c62u-gc3e.local.",
|
|
["10.0.0.223"],
|
|
443,
|
|
)
|
|
self.assertEqual(camera["alta_key"], "ABH7-C62U-GC3E")
|
|
self.assertEqual(camera["hostname"], "avacam-abh7-c62u-gc3e.local")
|
|
self.assertEqual(camera["web_ui_url"], "https://avacam-abh7-c62u-gc3e.local")
|
|
self.assertEqual(camera["ip_address"], "10.0.0.223")
|
|
|
|
def test_rejects_non_camera_service(self):
|
|
self.assertIsNone(camera_from_service(
|
|
"printer._ipp._tcp.local.", "printer.local.", ["10.0.0.50"], 631
|
|
))
|
|
|
|
def test_deduplicates_and_sorts_results(self):
|
|
rows = [
|
|
{"alta_key": "BBBB-BBBB-BBBB", "ip_address": "10.0.0.2"},
|
|
{"alta_key": "AAAA-AAAA-AAAA", "ip_address": "10.0.0.3"},
|
|
{"alta_key": "BBBB-BBBB-BBBB", "ip_address": "10.0.0.2"},
|
|
]
|
|
self.assertEqual(
|
|
[row["alta_key"] for row in normalize_results(rows)],
|
|
["AAAA-AAAA-AAAA", "BBBB-BBBB-BBBB"],
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|