Add HA lifecycle tests and CI
Tests / tests (push) Canceled after 0s

This commit is contained in:
buzera committed 2026-10-26 18:21:18 +02:00
1 parent cea79b6b48
commit c771bc360a
12 files changed
+378 -4

No files matched your search

+36
View File
@@ -126,3 +126,39 @@ history remain future work. These checks run on the existing five-minute poll.
After backing up and upgrading, check report ages in Status, adjust limits in
Options to match your sensors, and verify fallback/recovery with an unavailable
source. Generic Thermostat remains the sole controller. No HAOS trial was performed.
## Developer checks and Forgejo/Gitea Actions
The HA Core test suite targets **Home Assistant 2025.12.0 on Python 3.13**,
matching the minimum version in `hacs.json`. Run in a dedicated development
virtual environment; these test dependencies are not installed in the integration
and do not change its local, standard-library model inference.
```bash
python3.13 -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements-test.txt
sh scripts/check.sh
```
The check script runs dependency consistency checks, 42 offline tests, 14 tests
using the real HA Core/fixture package, compilation, lightweight package metadata
and translation checks, and diff whitespace checks. A compatible DNS dependency
is pinned because pycares 5 breaks the older HA dependency's import. The script
also disables a transitive HA test dependency's optional metadata download.
HA tests cover setup, config/options forms, migration, reload and entity cleanup,
scheduled sampling and poll cancellation, stored model restoration/deletion,
missing inputs, manual off/presets and optimizer failure. A fixture rejects all
HA service calls throughout each test. HA Core runs locally with simulated input
entities and mocked storage I/O; this does not validate HAOS, physical devices,
disk failures or full process restarts. The original standalone unittest command
still works without installing HA.
`.gitea/workflows/tests.yml` runs the same checks for pushes and pull requests on
an `ubuntu-latest` Actions runner. Enable repository Actions and configure a runner
with that label. Dependencies and action downloads need internet access in CI;
model inference does not. Remote CI execution has not yet been verified. Local
validation used macOS and Python 3.13; Linux runner validation remains necessary.
No runtime integration behavior or manifest version changed in this test commit.