feature/ha-adapter: Grundmodell, Client und Reader für Home Assistant
This commit is contained in:
38
tests/ha/test_ha_reader.py
Normal file
38
tests/ha/test_ha_reader.py
Normal file
@@ -0,0 +1,38 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from app.ha.client import HaClient, HaClientSettings
|
||||
from app.ha.models import HaEntitySummary, HaState
|
||||
from app.ha.reader import HaReader
|
||||
|
||||
|
||||
class FakeHaClient(HaClient):
|
||||
def __init__(self) -> None:
|
||||
super().__init__(HaClientSettings(url="http://test", token="token"))
|
||||
|
||||
def list_entities(self) -> list[dict[str, object]]:
|
||||
return [
|
||||
{
|
||||
"entity_id": "sensor.temperature",
|
||||
"state": "21.5",
|
||||
"attributes": {
|
||||
"state_class": "measurement",
|
||||
"device_class": "temperature",
|
||||
"unit_of_measurement": "°C",
|
||||
},
|
||||
},
|
||||
{
|
||||
"entity_id": "light.living_room",
|
||||
"state": "on",
|
||||
"attributes": {},
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
def test_ha_reader_returns_summaries() -> None:
|
||||
reader = HaReader(FakeHaClient())
|
||||
summaries = reader.read_entities()
|
||||
assert len(summaries) == 2
|
||||
domains = {summary.domain for summary in summaries}
|
||||
assert domains == {"sensor", "light"}
|
||||
sensor = next(item for item in summaries if item.entity_id == "sensor.temperature")
|
||||
assert sensor.unit_of_measurement == "°C"
|
||||
Reference in New Issue
Block a user