import pytest from pathlib import Path from discovery import Camera from rally import dante_capture_card, discover_rally, rally_video_node from run import fleet_cameras from usb_ids import RALLY_IDENTITY _HAVE_RALLY = rally_video_node() is not None @pytest.mark.skipif(not _HAVE_RALLY, reason="Rally V-R0010 not on USB") def test_rally_node_is_pinned_or_uvc(): node = rally_video_node() assert node is not None assert Path(node).exists() @pytest.mark.skipif(not _HAVE_RALLY, reason="Rally V-R0010 not on USB") def test_discover_rally_not_a_cam_slot(): cam = discover_rally() assert cam is not None assert cam.identity == RALLY_IDENTITY assert cam.width == 1920 assert cam.height == 1080 assert cam.identity != "cam-01" card = dante_capture_card() assert cam.audio_card == card def test_fleet_cameras_drops_rally(): cams = [ Camera(index=0, identity="cam-01", video_device="/dev/cam01", audio_card=1), Camera(index=20, identity="rally", video_device="/dev/rally", audio_card=0), ] assert [c.identity for c in fleet_cameras(cams)] == ["cam-01"]