mirror of
https://github.com/home-assistant/core.git
synced 2025-11-13 04:50:17 +00:00
96 lines
1.9 KiB
Python
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
|