Files
core/tests/components/asuswrt/test_helpers.py
2025-08-12 20:45:39 +02:00

96 lines
1.9 KiB
Python

"""Tests for AsusWRT helpers."""
from typing import Any
import pytest
from homeassistant.components.asuswrt.helpers import clean_dict, translate_to_legacy
DICT_TO_CLEAN = {
"key1": "value1",
"key2": None,
"key3_state": "value3",
"key4_state": None,
"state": None,
}
DICT_CLEAN = {
"key1": "value1",
"key3_state": "value3",
"key4_state": None,
"state": None,
}
TRANSLATE_0_INPUT = {
"usage": "value1",
"cpu": "value2",
}
TRANSLATE_0_OUTPUT = {
"mem_usage_perc": "value1",
"CPU": "value2",
}
TRANSLATE_1_INPUT = {
"wan_rx": "value1",
"wan_rrx": "value2",
}
TRANSLATE_1_OUTPUT = {
"sensor_rx_bytes": "value1",
"wan_rrx": "value2",
}
TRANSLATE_2_INPUT = [
"free",
"used",
]
TRANSLATE_2_OUTPUT = [
"mem_free",
"mem_used",
]
TRANSLATE_3_INPUT = [
"2ghz",
"2ghz2",
]
TRANSLATE_3_OUTPUT = [
"2.4GHz",
"2ghz2",
]
def test_clean_dict() -> None:
"""Test clean_dict method."""
assert clean_dict(DICT_TO_CLEAN) == DICT_CLEAN
@pytest.mark.parametrize(
("input", "expected"),
[
# Case set 0: None as input -> None on output
(None, None),
# Case set 1: Dict structure should stay intact or translated
({"key1": "value1", "key2": None}, {"key1": "value1", "key2": None}),
(TRANSLATE_0_INPUT, TRANSLATE_0_OUTPUT),
(TRANSLATE_1_INPUT, TRANSLATE_1_OUTPUT),
({}, {}),
# Case set 2: List structure should stay intact or translated
(["key1", "key2"], ["key1", "key2"]),
(TRANSLATE_2_INPUT, TRANSLATE_2_OUTPUT),
(TRANSLATE_3_INPUT, TRANSLATE_3_OUTPUT),
([], []),
# Case set 3: Anything else should be simply returned
(123, 123),
("string", "string"),
(3.1415926535, 3.1415926535),
],
)
def test_translate(input: Any, expected: Any) -> None:
"""Test translate method."""
assert translate_to_legacy(input) == expected