Skip to content
Snippets Groups Projects
Unverified Commit c7f66307 authored by Maikel Punie's avatar Maikel Punie Committed by GitHub
Browse files

Velbus add init testcases (#134533)

parent afa95293
No related branches found
No related tags found
No related merge requests found
"""Tests for the Velbus component initialisation.""" """Tests for the Velbus component initialisation."""
from unittest.mock import patch from unittest.mock import MagicMock, patch
import pytest from velbusaio.exceptions import VelbusConnectionFailed
from homeassistant.components.velbus import VelbusConfigEntry
from homeassistant.components.velbus.const import DOMAIN from homeassistant.components.velbus.const import DOMAIN
from homeassistant.config_entries import ConfigEntry, ConfigEntryState from homeassistant.config_entries import ConfigEntry, ConfigEntryState
from homeassistant.const import CONF_NAME, CONF_PORT from homeassistant.const import CONF_NAME, CONF_PORT
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr from homeassistant.helpers import device_registry as dr, entity_registry as er
from . import init_integration
from tests.common import MockConfigEntry from tests.common import MockConfigEntry
@pytest.mark.usefixtures("controller") async def test_setup_connection_failed(
async def test_unload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> None: hass: HomeAssistant,
config_entry: VelbusConfigEntry,
controller: MagicMock,
) -> None:
"""Test the setup that fails during velbus connect."""
controller.return_value.connect.side_effect = VelbusConnectionFailed()
await hass.config_entries.async_setup(config_entry.entry_id)
assert config_entry.state is ConfigEntryState.SETUP_RETRY
async def test_setup_start_failed(
hass: HomeAssistant,
config_entry: VelbusConfigEntry,
controller: MagicMock,
entity_registry: er.EntityRegistry,
) -> None:
"""Test the setup that fails during velbus start task, should result in no entries."""
controller.return_value.start.side_effect = ConnectionError()
await init_integration(hass, config_entry)
assert config_entry.state is ConfigEntryState.LOADED
assert (
er.async_entries_for_config_entry(entity_registry, config_entry.entry_id) == []
)
async def test_unload_entry(
hass: HomeAssistant,
config_entry: ConfigEntry,
) -> None:
"""Test being able to unload an entry.""" """Test being able to unload an entry."""
await hass.config_entries.async_setup(config_entry.entry_id) await hass.config_entries.async_setup(config_entry.entry_id)
await hass.async_block_till_done() await hass.async_block_till_done()
...@@ -29,9 +60,10 @@ async def test_unload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> N ...@@ -29,9 +60,10 @@ async def test_unload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> N
assert not hass.data.get(DOMAIN) assert not hass.data.get(DOMAIN)
@pytest.mark.usefixtures("controller")
async def test_device_identifier_migration( async def test_device_identifier_migration(
hass: HomeAssistant, config_entry: ConfigEntry, device_registry: dr.DeviceRegistry hass: HomeAssistant,
config_entry: ConfigEntry,
device_registry: dr.DeviceRegistry,
) -> None: ) -> None:
"""Test being able to unload an entry.""" """Test being able to unload an entry."""
original_identifiers = {(DOMAIN, "module_address", "module_serial")} original_identifiers = {(DOMAIN, "module_address", "module_serial")}
...@@ -64,8 +96,10 @@ async def test_device_identifier_migration( ...@@ -64,8 +96,10 @@ async def test_device_identifier_migration(
assert device_entry.sw_version == "module_sw_version" assert device_entry.sw_version == "module_sw_version"
@pytest.mark.usefixtures("controller") async def test_migrate_config_entry(
async def test_migrate_config_entry(hass: HomeAssistant) -> None: hass: HomeAssistant,
controller: MagicMock,
) -> None:
"""Test successful migration of entry data.""" """Test successful migration of entry data."""
legacy_config = {CONF_NAME: "fake_name", CONF_PORT: "1.2.3.4:5678"} legacy_config = {CONF_NAME: "fake_name", CONF_PORT: "1.2.3.4:5678"}
entry = MockConfigEntry(domain=DOMAIN, unique_id="my own id", data=legacy_config) entry = MockConfigEntry(domain=DOMAIN, unique_id="my own id", data=legacy_config)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment