first
This commit is contained in:
79
backend/tests/test_ha_client.py
Normal file
79
backend/tests/test_ha_client.py
Normal file
@@ -0,0 +1,79 @@
|
||||
from app.ha_client import normalize_entity
|
||||
|
||||
|
||||
def test_normalize_entity_basic():
|
||||
state = {
|
||||
"entity_id": "light.salon",
|
||||
"state": "on",
|
||||
"attributes": {
|
||||
"friendly_name": "Lumière Salon",
|
||||
"device_class": "light",
|
||||
},
|
||||
"last_changed": "2026-01-01T00:00:00Z",
|
||||
"last_updated": "2026-01-01T00:00:00Z",
|
||||
}
|
||||
result = normalize_entity(state)
|
||||
|
||||
assert result["entity_id"] == "light.salon"
|
||||
assert result["domain"] == "light"
|
||||
assert result["friendly_name"] == "Lumière Salon"
|
||||
assert result["state"] == "on"
|
||||
assert result["device_class"] == "light"
|
||||
assert result["is_available"] is True
|
||||
assert result["is_disabled"] is False
|
||||
|
||||
|
||||
def test_normalize_entity_unavailable():
|
||||
state = {
|
||||
"entity_id": "sensor.temp",
|
||||
"state": "unavailable",
|
||||
"attributes": {},
|
||||
}
|
||||
result = normalize_entity(state)
|
||||
|
||||
assert result["is_available"] is False
|
||||
assert result["domain"] == "sensor"
|
||||
|
||||
|
||||
def test_normalize_entity_with_registry():
|
||||
state = {
|
||||
"entity_id": "switch.garage",
|
||||
"state": "off",
|
||||
"attributes": {"friendly_name": "Garage"},
|
||||
}
|
||||
registry = {
|
||||
"entity_id": "switch.garage",
|
||||
"area_id": "garage",
|
||||
"device_id": "dev_123",
|
||||
"platform": "esphome",
|
||||
"disabled_by": None,
|
||||
"hidden_by": "user",
|
||||
}
|
||||
result = normalize_entity(state, registry)
|
||||
|
||||
assert result["area_id"] == "garage"
|
||||
assert result["device_id"] == "dev_123"
|
||||
assert result["integration"] == "esphome"
|
||||
assert result["is_disabled"] is False
|
||||
assert result["is_hidden"] is True
|
||||
|
||||
|
||||
def test_normalize_entity_disabled_in_registry():
|
||||
state = {
|
||||
"entity_id": "sensor.disabled",
|
||||
"state": "unknown",
|
||||
"attributes": {},
|
||||
}
|
||||
registry = {
|
||||
"entity_id": "sensor.disabled",
|
||||
"disabled_by": "user",
|
||||
"hidden_by": None,
|
||||
"area_id": None,
|
||||
"device_id": None,
|
||||
"platform": "mqtt",
|
||||
}
|
||||
result = normalize_entity(state, registry)
|
||||
|
||||
assert result["is_disabled"] is True
|
||||
assert result["is_available"] is False
|
||||
assert result["integration"] == "mqtt"
|
||||
Reference in New Issue
Block a user