Experimental package to automatically extract test plugins for Home Assistant custom components
Project description
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_components
folder, acustom_components/__init__.py
file or changes tosys.path
may be required. enable_custom_integrations
fixture 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 might now require
asyncio_mode = auto
config, see #129. - If using
load_fixture
, the files need to be in afixtures
folder colocated with the tests. For example, a test intest_sensor.py
can load data fromsome_data.json
usingload_fixture
from this structure:
tests/
fixtures/
some_data.json
test_sensor.py
Examples:
- See list of custom components as examples that use this package.
- Also see tests for
simple_integration
in 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_component
files. 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for pytest_homeassistant_custom_component-0.13.118.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 360b35dfc4b8e25ef9037b099b460a49c392e52b7ae828d5d83d9fbebedba4e7 |
|
MD5 | b3b76eab7c27f4d088cd24037b2a805e |
|
BLAKE2b-256 | 7abfae0979c05d17ab0c6e4425a3e47e0353f0b9c8d0b3b27fd1c4fbbc65f596 |
Close
Hashes for pytest_homeassistant_custom_component-0.13.118-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f77f550a867929f78ece6896a3c9b908b0f9a3ffe106fa17c68696a8805714e3 |
|
MD5 | 3021ab1dcf9ea9bfd9309d74c016951c |
|
BLAKE2b-256 | 8e7f354634fa2f9528e437b85b0ed2d85d977bc9d5fafa841aeffa8e1b48bb72 |