This commit is contained in:
eric
2026-05-16 19:24:30 -05:00
parent 19beec12a5
commit 75a0ca4e31
260 changed files with 51345 additions and 1 deletions

View File

@@ -0,0 +1,40 @@
from __future__ import annotations
import unittest
from src.hdmi_control import _parse_v4l2_devices, _recommend_capture_device
class HdmiControlTests(unittest.TestCase):
def test_parse_v4l2_devices_extracts_nodes(self) -> None:
text = (
"USB Video:\n"
"\t/dev/video0\n"
"\t/dev/video1\n"
"\n"
"bcm2835-codec:\n"
"\t/dev/video10\n"
)
items = _parse_v4l2_devices(text)
self.assertEqual(items[0]["name"], "USB Video")
self.assertEqual(items[0]["nodes"], ["/dev/video0", "/dev/video1"])
self.assertTrue(items[0]["is_capture_candidate"])
def test_parse_v4l2_devices_handles_empty(self) -> None:
self.assertEqual(_parse_v4l2_devices(""), [])
def test_recommend_capture_device_skips_codec_only_nodes(self) -> None:
text = (
"bcm2835-codec:\n"
"\t/dev/video10\n"
"\n"
"USB Video:\n"
"\t/dev/video0\n"
)
items = _parse_v4l2_devices(text)
self.assertFalse(items[0]["is_capture_candidate"])
self.assertEqual(_recommend_capture_device(["/dev/video0", "/dev/video10"], items), "/dev/video0")
if __name__ == "__main__":
unittest.main()