pytest-homeassistant 0.1.3

Creator: bradpython12

Last updated:

Add to Cart

Description:

pytesthomeassistant 0.1.3

A pytest plugin for use with Home Assistant custom components.

This pytest plugin provides several pytest fixtures and utils to make testing
Home Assistant custom components easier.
The plugin allows you to use a subset of fixtures and helpers from the
Home Assistant test code to allow you to test your own custom components.

Features

Fixtures

hass - Used to mock a hass instance. This is primarily useful in testing your
config_flow code. Examples of it’s usage can be found in the Home Assistant
tests.

from custom_components.steam_wishlist import config_flow

async def test_flow_init(hass):
"""Test the initial flow."""
result = await hass.config_entries.flow.async_init(
config_flow.DOMAIN, context={"source": "user"}
)

expected = {
"data_schema": config_flow.DATA_SCHEMA,
"description_placeholders": None,
"errors": {},
"flow_id": mock.ANY,
"handler": "steam_wishlist",
"step_id": "user",
"type": "form",
}
assert expected == result

aioclient_mock - Used to mock responses from homeassistant.helpers.aiohttp_client.async_get_clientsession
in your test code.

You can find example usage of both of these fixtures in the Home Assistant tests directory.


Helpers

pytest_homeassistant.async_mock - Contains all mock methods that can handle
async calls.

from pytest_homeassistant.async_mock import AsyncMock
from custom_components.steam_wishlist import sensor_manager

async def test_sensormanager_async_register_component(
hass, coordinator_mock
):
"""Test that we add listeners and referesh data if all platforms were registered."""
manager = sensor_manager.SensorManager(hass, url="http://fake.com")
mock_async_add_entities = AsyncMock()
await manager.async_register_component("sensor", mock_async_add_entities)

assert mock_async_add_entities.called is True



Requirements

homeassistant



Installation
You can install “pytest-homeassistant” via pip from PyPI:
$ pip install pytest-homeassistant


Contributing
Contributions are very welcome. I only incldued fixtures and test helpers that
were useful to me when testing my custom components. If there are others that would
be useful to you, pull requests are welcome!


License
Distributed under the terms of the MIT license, “pytest-homeassistant” is free and open source software.


Issues
If you encounter any problems, please file an issue along with a detailed description.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.