's'
This commit is contained in:
40
d2ypp2/tests/test_hdmi_control.py
Normal file
40
d2ypp2/tests/test_hdmi_control.py
Normal 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()
|
||||
Reference in New Issue
Block a user