Add api/ with a FastAPI app that imports the bundled NestQuest core (Feature 15) WITHOUT importing homeassistant: api/nestquest_core.py bootstraps the integration directory onto sys.path and imports core as a top-level package, so custom_components/nestquest/__init__.py (which imports HA) never executes. This transitional coupling is encapsulated in one documented helper to revisit in Feature 18. The app reads NESTQUEST_DB_PATH (env var, documented temp default), opens+migrates the SQLite database in a FastAPI lifespan, and serves GET /health (200, status ok + resolved db_path) and the OpenAPI doc at /docs and /openapi.json. Tests start the app with httpx against the ASGI app and assert all three; a subprocess test proves the app imports core without importing homeassistant or registering custom_components. Add fastapi, uvicorn, httpx to the dev dependency group; uv lock. Suite green at 1581 (1576 baseline + 5 new API tests).
25 lines
456 B
TOML
25 lines
456 B
TOML
[project]
|
|
name = "nestquest"
|
|
version = "0.5.0"
|
|
description = "NestQuest Home Assistant Integration"
|
|
readme = "README.md"
|
|
requires-python = ">=3.11"
|
|
dependencies = []
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"fastapi>=0.115",
|
|
"httpx>=0.28",
|
|
"jinja2>=3",
|
|
"pytest>=8.0.0",
|
|
"pytest-asyncio>=0.24",
|
|
"pyyaml>=6",
|
|
"uvicorn>=0.30",
|
|
"voluptuous>=0.14",
|
|
]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
pythonpath = ["."]
|
|
asyncio_mode = "auto"
|