mirror of
https://github.com/basnijholt/adaptive-lighting.git
synced 2026-09-29 13:24:18 +02:00
* openspec: propose migrate-ci-to-phcc (proposal + design)
Design-first per repo convention. Migrates pytest + Docker CI off the dead HA core-checkout harness to the PHCC-based local test suite that already passes locally (164). Implementation (tasks + code) held pending review of the design's open questions.
* ci: migrate pytest + Docker off HA core-checkout to PHCC
Implements openspec change migrate-ci-to-phcc.
- pytest.yaml: run the local PHCC suite (latest + dev matrix; dev is
continue-on-error). Fixes the trigger (was push:[master] -> never ran on
main; now main). Drops coverage (was computed but never uploaded). Recipe
verified in a clean env locally: 164 passed, Python 3.13, latest PHCC.
- Delete dead core-checkout scaffolding: install_dependencies action,
setup-dependencies, setup-symlinks, update-test-matrix.{py,yaml},
test_dependencies.py, Dockerfile, docker-build.yml.
- setup-devcontainer: PHCC flow (uv sync --group test).
- tests/README.md: rewritten for 'uv run pytest'.
- CLAUDE.md: drop the 'Refresh test matrix' row.
- hacs.json 2024.12.0 -> 2026.1.0; README min-version line corrected (it
wrongly claimed '2025.1.0 pinned in manifest.json' - manifest pins none).
* openspec: mark migrate-ci-to-phcc 4.3 done (CI verified green)
39 lines
1.2 KiB
Markdown
39 lines
1.2 KiB
Markdown
# Developer notes for the tests directory
|
|
|
|
The tests use [`pytest-homeassistant-custom-component`](https://github.com/MatthewFlamm/pytest-homeassistant-custom-component)
|
|
(PHCC), which bundles a pinned Home Assistant plus its test fixtures. **No Home
|
|
Assistant `core` checkout is required** (the old clone-core + symlink + Docker
|
|
flow has been retired).
|
|
|
|
## Running the tests
|
|
|
|
From the repo root:
|
|
|
|
```bash
|
|
uv run pytest
|
|
```
|
|
|
|
`uv` builds the environment from `pyproject.toml` (the `test` dependency group
|
|
pulls in PHCC, `pytest`, and `pytest-asyncio`), and `testpaths = ["tests"]`
|
|
scopes collection to this directory. Pass pytest arguments straight through:
|
|
|
|
```bash
|
|
uv run pytest tests/test_number_platform.py -k ramp -vv
|
|
```
|
|
|
|
## What CI runs
|
|
|
|
`.github/workflows/pytest.yaml` runs the same suite on two matrix entries:
|
|
|
|
- **stable** — the latest released PHCC (current stable HA).
|
|
- **dev** — the latest PHCC pre-release (`--pre`, upcoming HA beta), marked
|
|
`continue-on-error` so a missing or flaky pre-release never fails the build.
|
|
|
|
To reproduce a CI entry in a throwaway environment:
|
|
|
|
```bash
|
|
PYTHONPATH="$PWD" uv run --no-project \
|
|
--with pytest-homeassistant-custom-component --with pytest \
|
|
--with pytest-asyncio --with ulid-transform \
|
|
pytest -q
|
|
```
|