core/tests/components/tami4/test_init.py

61 lines
1.7 KiB
Python

"""Test the Tami4 component."""
import pytest
from Tami4EdgeAPI import exceptions
from homeassistant.config_entries import ConfigEntryState
from homeassistant.core import HomeAssistant
from .conftest import create_config_entry
async def test_init_success(mock_api, hass: HomeAssistant) -> None:
"""Test setup and that we can create the entry."""
entry = await create_config_entry(hass)
assert entry.state is ConfigEntryState.LOADED
@pytest.mark.parametrize(
"mock_get_device", [exceptions.APIRequestFailedException], indirect=True
)
async def test_init_with_api_error(mock_api, hass: HomeAssistant) -> None:
"""Test init with api error."""
entry = await create_config_entry(hass)
assert entry.state is ConfigEntryState.SETUP_RETRY
@pytest.mark.parametrize(
("mock__get_devices_metadata", "expected_state"),
[
(
exceptions.RefreshTokenExpiredException,
ConfigEntryState.SETUP_ERROR,
),
(
exceptions.TokenRefreshFailedException,
ConfigEntryState.SETUP_RETRY,
),
],
indirect=["mock__get_devices_metadata"],
)
async def test_init_error_raised(
mock_api, hass: HomeAssistant, expected_state: ConfigEntryState
) -> None:
"""Test init when an error is raised."""
entry = await create_config_entry(hass)
assert entry.state == expected_state
async def test_load_unload(mock_api, hass: HomeAssistant) -> None:
"""Config entry can be unloaded."""
entry = await create_config_entry(hass)
await hass.config_entries.async_unload(entry.entry_id)
await hass.async_block_till_done()
assert entry.state is ConfigEntryState.NOT_LOADED