mirror of
https://github.com/home-assistant/core.git
synced 2025-12-27 14:31:13 +00:00
77 lines
2.6 KiB
Python
77 lines
2.6 KiB
Python
"""Test the Volvo On Call integration setup."""
|
|
|
|
from homeassistant.components.volvooncall.const import DOMAIN
|
|
from homeassistant.config_entries import ConfigEntryState
|
|
from homeassistant.core import HomeAssistant
|
|
from homeassistant.helpers import issue_registry as ir
|
|
|
|
from tests.common import MockConfigEntry
|
|
|
|
|
|
async def test_setup_entry_creates_repair_issue(
|
|
hass: HomeAssistant, issue_registry: ir.IssueRegistry
|
|
) -> None:
|
|
"""Test that setup creates a repair issue."""
|
|
entry = MockConfigEntry(
|
|
domain=DOMAIN,
|
|
title="Volvo On Call",
|
|
data={},
|
|
)
|
|
entry.add_to_hass(hass)
|
|
|
|
assert await hass.config_entries.async_setup(entry.entry_id)
|
|
await hass.async_block_till_done()
|
|
|
|
assert entry.state is ConfigEntryState.LOADED
|
|
issue = issue_registry.async_get_issue(DOMAIN, "volvooncall_deprecated")
|
|
|
|
assert issue is not None
|
|
assert issue.severity is ir.IssueSeverity.WARNING
|
|
assert issue.translation_key == "volvooncall_deprecated"
|
|
|
|
|
|
async def test_unload_entry_removes_repair_issue(
|
|
hass: HomeAssistant, issue_registry: ir.IssueRegistry
|
|
) -> None:
|
|
"""Test that unloading the last config entry removes the repair issue."""
|
|
first_config_entry = MockConfigEntry(
|
|
domain=DOMAIN,
|
|
title="Volvo On Call",
|
|
data={},
|
|
)
|
|
first_config_entry.add_to_hass(hass)
|
|
second_config_entry = MockConfigEntry(
|
|
domain=DOMAIN,
|
|
title="Volvo On Call second",
|
|
data={},
|
|
)
|
|
second_config_entry.add_to_hass(hass)
|
|
|
|
# Setup entry
|
|
assert await hass.config_entries.async_setup(first_config_entry.entry_id)
|
|
await hass.async_block_till_done()
|
|
|
|
assert len(hass.config_entries.async_entries(DOMAIN)) == 2
|
|
|
|
# Check that the repair issue was created
|
|
issue = issue_registry.async_get_issue(DOMAIN, "volvooncall_deprecated")
|
|
assert issue is not None
|
|
|
|
# Unload entry (this is the only entry, so issue should be removed)
|
|
assert await hass.config_entries.async_remove(first_config_entry.entry_id)
|
|
await hass.async_block_till_done(wait_background_tasks=True)
|
|
|
|
assert len(hass.config_entries.async_entries(DOMAIN)) == 1
|
|
|
|
# Check that the repair issue still exists because there's another entry
|
|
issue = issue_registry.async_get_issue(DOMAIN, "volvooncall_deprecated")
|
|
assert issue is not None
|
|
|
|
# Unload entry (this is the only entry, so issue should be removed)
|
|
assert await hass.config_entries.async_remove(second_config_entry.entry_id)
|
|
await hass.async_block_till_done(wait_background_tasks=True)
|
|
|
|
# Check that the repair issue was removed
|
|
issue = issue_registry.async_get_issue(DOMAIN, "volvooncall_deprecated")
|
|
assert issue is None
|