Files
templates/python/tests/test_devboard_v1.py

22 lines
1.2 KiB
Python

# Проверки devboard_v1: фиксируют ожидаемое поведение на воспроизводимых входных данных.
# Сценарии для навигации по файлу:
# test_parse_can_and_rs485_lines
# test_commands_are_firmware_compatible_and_lf_terminated
# Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
# настройками рабочего устройства.
from protocan.devboard_v1 import BoardFrame, command_setup, command_transmit, parse_frame_line
def test_parse_can_and_rs485_lines():
can = parse_frame_line("[ 12.345] EXT 0x073700A2 DLC=2 DATA=34 12 |4.|")
rs = parse_frame_line("[ 12.346] RS485 STD 0x123 RTR DLC=4")
assert can and can.can_id == 0x073700A2 and can.data == b"\x34\x12"
assert rs and rs.source == "RS485" and rs.rtr and rs.data == b""
def test_commands_are_firmware_compatible_and_lf_terminated():
frame = BoardFrame(0.0, True, 0x073700A2, b"\x34\x12")
assert command_transmit(frame) == b"T,E,73700A2,2,3412\n"
assert command_setup() == (b"S500\n", b"M0\n", b"B512000\n", b"Q3\n")