mirror of https://github.com/home-assistant/core
57 lines
1.5 KiB
Python
57 lines
1.5 KiB
Python
"""Tests for Broadlink helper functions."""
|
|
|
|
import pytest
|
|
import voluptuous as vol
|
|
|
|
from homeassistant.components.broadlink.helpers import data_packet, mac_address
|
|
from homeassistant.core import HomeAssistant
|
|
|
|
|
|
async def test_padding(hass: HomeAssistant) -> None:
|
|
"""Verify that non padding strings are allowed."""
|
|
assert data_packet("Jg") == b"&"
|
|
assert data_packet("Jg=") == b"&"
|
|
assert data_packet("Jg==") == b"&"
|
|
|
|
|
|
async def test_valid_mac_address(hass: HomeAssistant) -> None:
|
|
"""Test we convert a valid MAC address to bytes."""
|
|
valid = [
|
|
"A1B2C3D4E5F6",
|
|
"a1b2c3d4e5f6",
|
|
"A1B2-C3D4-E5F6",
|
|
"a1b2-c3d4-e5f6",
|
|
"A1B2.C3D4.E5F6",
|
|
"a1b2.c3d4.e5f6",
|
|
"A1-B2-C3-D4-E5-F6",
|
|
"a1-b2-c3-d4-e5-f6",
|
|
"A1:B2:C3:D4:E5:F6",
|
|
"a1:b2:c3:d4:e5:f6",
|
|
]
|
|
for mac in valid:
|
|
assert mac_address(mac) == b"\xa1\xb2\xc3\xd4\xe5\xf6"
|
|
|
|
|
|
async def test_invalid_mac_address(hass: HomeAssistant) -> None:
|
|
"""Test we do not accept an invalid MAC address."""
|
|
invalid = [
|
|
None,
|
|
123,
|
|
["a", "b", "c"],
|
|
{"abc": "def"},
|
|
"a1b2c3d4e5f",
|
|
"a1b2.c3d4.e5f",
|
|
"a1-b2-c3-d4-e5-f",
|
|
"a1b2c3d4e5f66",
|
|
"a1b2.c3d4.e5f66",
|
|
"a1-b2-c3-d4-e5-f66",
|
|
"a1b2c3d4e5fg",
|
|
"a1b2.c3d4.e5fg",
|
|
"a1-b2-c3-d4-e5-fg",
|
|
"a1b.2c3d4.e5fg",
|
|
"a1b-2-c3-d4-e5-fg",
|
|
]
|
|
for mac in invalid:
|
|
with pytest.raises((ValueError, vol.Invalid)):
|
|
mac_address(mac)
|