pytest-homeassistant-custom-component
Package to automatically extract testing plugins from Home Assistant for custom component testing. The goal is to provide the same functionality as the tests in home-assistant/core. pytest-homeassistant-custom-component is updated daily according to the latest homeassistant release including beta.
Usage:
- All pytest fixtures can be used as normal, like
hass - For helpers:
- home-assistant/core native test:
from tests.common import MockConfigEntry - custom component test:
from pytest_homeassistant_custom_component.common import MockConfigEntry
- home-assistant/core native test:
- If your integration is inside a
custom_componentsfolder, acustom_components/__init__.pyfile or changes tosys.pathmay be required. enable_custom_integrationsfixture is required (versions >=2021.6.0b0)- Some fixtures, e.g.
recorder_mock, need to be initialized beforeenable_custom_integrations. See https://github.com/MatthewFlamm/pytest-homeassistant-custom-component/issues/132.
- Some fixtures, e.g.
- pytest-asyncio now requires
asyncio_mode = autoconfig, see https://github.com/MatthewFlamm/pytest-homeassistant-custom-component/issues/129 and https://github.com/MatthewFlamm/pytest-homeassistant-custom-component/issues/247. - If using
load_fixture, the files need to be in afixturesfolder colocated with the tests. For example, a test intest_sensor.pycan load data fromsome_data.jsonusingload_fixturefrom this structure:
tests/
fixtures/
some_data.json
test_sensor.py
- When using syrupy snapshots, add a
snapshotfixture to conftest.py to make sure the snapshots are loaded from snapshot folder colocated with the tests.
from pytest_homeassistant_custom_component.syrupy import HomeAssistantSnapshotExtension
from syrupy.assertion import SnapshotAssertion
@pytest.fixture
def snapshot(snapshot: SnapshotAssertion) -> SnapshotAssertion:
"""Return snapshot assertion fixture with the Home Assistant extension."""
return snapshot.use_extension(HomeAssistantSnapshotExtension)
Examples:
- See list of custom components as examples that use this package.
- Also see tests for
simple_integrationin this repository. - Use cookiecutter-homeassistant-custom-component to create a custom component with tests by using cookiecutter.
- The github-custom-component-tutorial explaining in details how to create a custom componenent with a test suite using this package.
More Info
This repository is set up to be nearly fully automatic.
- Version of home-assistant/core is given in
ha_version,pytest_homeassistant_custom_component.const, and in the README above. - This package is generated against published releases of homeassistant and updated daily.
- PRs should not include changes to the
pytest_homeassistant_custom_componentfiles. CI testing will automatically generate the new files.
Version Strategy
- When changes in extraction are required, there will be a change in the minor version.
- A change in the patch version indicates that it was an automatic update with a homeassistant version.
- This enables tracking back to which versions of pytest-homeassistant-custom-component can be used for extracting testing utilities from which version of homeassistant.
This package was inspired by pytest-homeassistant by @boralyl, but is intended to more closely and automatically track the home-assistant/core library.
Release files for pytest-homeassistant-custom-component 0.13.366
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pytest_homeassistant_custom_component-0.13.366.tar.gz | 78.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pytest_homeassistant_custom_component-0.13.366-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 163.0 kB
Release files / pytest_homeassistant_custom_component-0.13.366.tar.gz
| Download URL | pytest_homeassistant_custom_component-0.13.366.tar.gz |
|---|---|
| Size | 78.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4849cc1086189d63eb580dd3dc814a36eda1984022b105f138a5fba4e85a3e8c
|
|
BLAKE2b-256 checksum How to use checksums |
f95a5739c07dba93f26117b468ee9eca3ab9402eff8550a3688961d42ef7f5a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / pytest_homeassistant_custom_component-0.13.366-py3-none-any.whl
| Download URL | pytest_homeassistant_custom_component-0.13.366-py3-none-any.whl |
|---|---|
| Size | 84.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8c5f0554a76e7746e2abee2cc80c80d5e5f13e27c6a31fc1894e36bae4aeafd9
|
|
BLAKE2b-256 checksum How to use checksums |
7bfc9baacb0081d9e8da26ca068b5b1b3382fbcfa2f347d82f537f048ca5ffc5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|