Move enum mapper to own file to prevent circular dependency (#90890)

* Move enum_mapper to own file to prevent circular dependency

* Add enum mapper test
This commit is contained in:
Jesse Hills 2023-04-06 14:55:51 +12:00 committed by GitHub
parent 2fc34e7cce
commit eb469d6a2f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 93 additions and 67 deletions

View file

@ -0,0 +1,42 @@
"""Test ESPHome enum mapper."""
from aioesphomeapi import APIIntEnum
from homeassistant.backports.enum import StrEnum
from homeassistant.components.esphome.enum_mapper import EsphomeEnumMapper
class MockEnum(APIIntEnum):
"""Mock enum."""
ESPHOME_FOO = 1
ESPHOME_BAR = 2
class MockStrEnum(StrEnum):
"""Mock enum."""
HA_FOO = "foo"
HA_BAR = "bar"
MOCK_MAPPING: EsphomeEnumMapper[MockEnum, MockStrEnum] = EsphomeEnumMapper(
{
MockEnum.ESPHOME_FOO: MockStrEnum.HA_FOO,
MockEnum.ESPHOME_BAR: MockStrEnum.HA_BAR,
}
)
async def test_map_esphome_to_ha() -> None:
"""Test mapping from ESPHome to HA."""
assert MOCK_MAPPING.from_esphome(MockEnum.ESPHOME_FOO) == MockStrEnum.HA_FOO
assert MOCK_MAPPING.from_esphome(MockEnum.ESPHOME_BAR) == MockStrEnum.HA_BAR
async def test_map_ha_to_esphome() -> None:
"""Test mapping from HA to ESPHome."""
assert MOCK_MAPPING.from_hass(MockStrEnum.HA_FOO) == MockEnum.ESPHOME_FOO
assert MOCK_MAPPING.from_hass(MockStrEnum.HA_BAR) == MockEnum.ESPHOME_BAR