Files
gitlab-instance-0a899031_sh/d2ypp2/tests/test_hdmi_control.py
2026-05-16 19:24:30 -05:00

41 lines
1.2 KiB
Python

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()