Files
TuxDMX-WebUI/backend/tests/test_dmx_frame.py
T
thomas 1f110866f5
CI / backend (pull_request) Canceled after 0s
CI / shell (pull_request) Canceled after 0s
CI / frontend (pull_request) Canceled after 0s
CI / arm64-smoke (pull_request) Canceled after 0s
CI / backend (push) Canceled after 0s
CI / shell (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
CI / arm64-smoke (push) Canceled after 0s
Update docs and screenshots
2026-07-25 10:26:29 +02:00

40 lines
1.7 KiB
Python

from app.dmx.frame import DmxFrame, FrameLayer, merge_layers
def test_frame_has_512_channels() -> None:
frame = DmxFrame()
assert len(frame.values) == 512
assert all(value == 0 for value in frame.values)
def test_htp_chooses_highest_value() -> None:
base = FrameLayer.from_channel_values("base", priority=10, values={1: 80}, precedence_map={1: "htp"})
overlay = FrameLayer.from_channel_values("overlay", priority=20, values={1: 200}, precedence_map={1: "htp"})
frames = merge_layers([base, overlay])
assert frames[1].values[0] == 200
assert frames[1].source_map[0] == "overlay"
def test_ltp_chooses_latest_priority_layer() -> None:
base = FrameLayer.from_channel_values("base", priority=10, values={2: 200}, precedence_map={2: "ltp"})
overlay = FrameLayer.from_channel_values("overlay", priority=20, values={2: 15}, precedence_map={2: "ltp"})
frames = merge_layers([base, overlay])
assert frames[1].values[1] == 15
assert frames[1].source_map[1] == "overlay"
def test_blackout_overrides_layers() -> None:
layer = FrameLayer.from_channel_values("scene", priority=10, values={1: 255, 2: 128}, precedence_map={1: "htp"})
frames = merge_layers([layer], blackout=True)
assert frames[1].values[0] == 0
assert frames[1].values[1] == 0
def test_layers_are_merged_per_universe() -> None:
front = FrameLayer.from_channel_values("front", priority=10, values={1: 255}, universe=1)
home_assistant = FrameLayer.from_channel_values("ha", priority=10, values={1: 180, 2: 90}, universe=10)
frames = merge_layers([front, home_assistant])
assert frames[1].values[0] == 255
assert frames[10].values[0] == 180
assert frames[10].values[1] == 90