1
0
mirror of https://github.com/home-assistant/core.git synced 2026-02-27 21:35:48 +00:00
Files
core/tests/components/starlink/test_init.py
2025-09-01 09:00:09 +02:00

115 lines
3.2 KiB
Python

"""Tests Starlink integration init/unload."""
from unittest.mock import patch
from homeassistant.components.starlink.const import DOMAIN
from homeassistant.config_entries import ConfigEntryState
from homeassistant.const import CONF_IP_ADDRESS
from homeassistant.core import HomeAssistant, State
from .patchers import (
HISTORY_STATS_SUCCESS_PATCHER,
LOCATION_DATA_SUCCESS_PATCHER,
SLEEP_DATA_SUCCESS_PATCHER,
STATUS_DATA_SUCCESS_PATCHER,
)
from tests.common import MockConfigEntry, mock_restore_cache_with_extra_data
async def test_successful_entry(hass: HomeAssistant) -> None:
"""Test configuring Starlink."""
entry = MockConfigEntry(
domain=DOMAIN,
data={CONF_IP_ADDRESS: "1.2.3.4:0000"},
)
with (
STATUS_DATA_SUCCESS_PATCHER,
LOCATION_DATA_SUCCESS_PATCHER,
SLEEP_DATA_SUCCESS_PATCHER,
HISTORY_STATS_SUCCESS_PATCHER,
):
entry.add_to_hass(hass)
await hass.config_entries.async_setup(entry.entry_id)
await hass.async_block_till_done()
assert entry.runtime_data
assert entry.runtime_data.data
assert entry.state is ConfigEntryState.LOADED
async def test_unload_entry(hass: HomeAssistant) -> None:
"""Test removing Starlink."""
entry = MockConfigEntry(
domain=DOMAIN,
data={CONF_IP_ADDRESS: "1.2.3.4:0000"},
)
with (
STATUS_DATA_SUCCESS_PATCHER,
LOCATION_DATA_SUCCESS_PATCHER,
SLEEP_DATA_SUCCESS_PATCHER,
HISTORY_STATS_SUCCESS_PATCHER,
):
entry.add_to_hass(hass)
await hass.config_entries.async_setup(entry.entry_id)
await hass.async_block_till_done()
assert await hass.config_entries.async_unload(entry.entry_id)
await hass.async_block_till_done()
assert entry.state is ConfigEntryState.NOT_LOADED
async def test_restore_cache_with_accumulation(hass: HomeAssistant) -> None:
"""Test configuring Starlink."""
entry = MockConfigEntry(
domain=DOMAIN,
data={CONF_IP_ADDRESS: "1.2.3.4:0000"},
)
entity_id = "sensor.starlink_energy"
mock_restore_cache_with_extra_data(
hass,
(
(
State(
entity_id,
"",
),
{
"native_value": 1,
"native_unit_of_measurement": None,
},
),
),
)
with (
STATUS_DATA_SUCCESS_PATCHER,
LOCATION_DATA_SUCCESS_PATCHER,
SLEEP_DATA_SUCCESS_PATCHER,
HISTORY_STATS_SUCCESS_PATCHER,
):
entry.add_to_hass(hass)
await hass.config_entries.async_setup(entry.entry_id)
await hass.async_block_till_done()
assert entry.runtime_data
assert entry.runtime_data.data
assert hass.states.get(entity_id).state == str(1 + 0.00786231368489)
await entry.runtime_data.async_refresh()
assert hass.states.get(entity_id).state == str(1 + 0.00786231368489)
with patch.object(entry.runtime_data, "always_update", return_value=True):
await entry.runtime_data.async_refresh()
assert hass.states.get(entity_id).state == str(1 + 0.01572462736977)