fix api integration quality baseline

This commit is contained in:
2026-06-10 21:15:41 +02:00
parent 6540d62ff7
commit 8841a68c8d
14 changed files with 126 additions and 42 deletions

View File

@@ -1,10 +1,46 @@
from collections.abc import Sequence
from fastapi.testclient import TestClient
from app.ha.models import HaEntitySummary
from app.ha.reader import HaReader
from app.main import app
client = TestClient(app)
class FakeHaReader(HaReader):
def __init__(self) -> None:
pass
def read_entities(self) -> Sequence[HaEntitySummary]:
return [HaEntitySummary(entity_id="sensor.temperature", domain="sensor")]
def test_openapi_docs_are_available() -> None:
response = client.get("/docs")
with TestClient(app) as client:
response = client.get("/docs")
assert response.status_code == 200
assert "SillyHome Next API" in response.text
def test_entities_returns_reader_data() -> None:
with TestClient(app) as client:
app.state.ha_reader = FakeHaReader()
response = client.get("/v1/entities")
assert response.status_code == 200
assert response.json() == [
{
"entity_id": "sensor.temperature",
"domain": "sensor",
"state_class": None,
"device_class": None,
"unit_of_measurement": None,
}
]
def test_entities_returns_503_without_home_assistant_config() -> None:
with TestClient(app) as client:
if hasattr(app.state, "ha_reader"):
delattr(app.state, "ha_reader")
response = client.get("/v1/entities")
assert response.status_code == 503