Files
esphome/tests/unit_tests/test_packet_interface.py
T
clydebarrowandClaude Opus 5.5 95f972d3c5 [packet_interface] Add packet interface component
A packet interface moves packets over a channel, with a uart link and a
packet_transport platform that uses any packet interface. Later layers
stack on the same base class.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 14:40:08 +11:00

35 lines
1.2 KiB
Python

"""Unit tests for the packet_interface component."""
import pytest
from esphome import config_validation as cv
from esphome.components import packet_interface
from esphome.components.packet_interface import CONF_MAX_PACKET_SIZE
from esphome.components.uart import packet_interface as uart_packet_interface
@pytest.mark.parametrize(
("schema", "default", "limit"),
[
(uart_packet_interface.CONFIG_SCHEMA, 508, 4096),
],
)
def test_platform_max_packet_size(
setup_core, schema: cv.Schema, default: int, limit: int
) -> None:
"""Each platform has its own default and upper limit for max_packet_size."""
assert schema({})[CONF_MAX_PACKET_SIZE] == default
assert schema({CONF_MAX_PACKET_SIZE: limit})[CONF_MAX_PACKET_SIZE] == limit
with pytest.raises(cv.Invalid):
schema({CONF_MAX_PACKET_SIZE: limit + 1})
with pytest.raises(cv.Invalid):
schema({CONF_MAX_PACKET_SIZE: 15})
def test_schema_default(setup_core) -> None:
"""packet_interface_schema applies the default it is given."""
schema = packet_interface.packet_interface_schema(
packet_interface.PacketInterface, 100
)
assert schema({})[CONF_MAX_PACKET_SIZE] == 100