pytest-homeassistant-custom-component
pytest-homeassistant-custom-component copied to clipboard
Package to automatically extract testing plugins from Home Assistant for custom component testing
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)- 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
Examples:
- See list of custom components as examples that use this package.
- Also see tests for
simple_integrationin this repository. - Use integration-blueprint as a template to create your custom component. A basic test suite is already implemented.
- Use cookiecutter-homeassistant-custom-component to create a custom component similar to integration_blueprint but customized for you 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.
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.