90 lines
2.6 KiB
Python
90 lines
2.6 KiB
Python
"""Tests for Fritz!Tools image platform."""
|
|
import pytest
|
|
|
|
from homeassistant.components.fritz.const import DOMAIN
|
|
from homeassistant.components.image import DOMAIN as IMAGE_DOMAIN
|
|
from homeassistant.config_entries import ConfigEntryState
|
|
from homeassistant.core import HomeAssistant
|
|
from homeassistant.helpers.entity_registry import async_get as async_get_entity_registry
|
|
from homeassistant.setup import async_setup_component
|
|
|
|
from .const import MOCK_FB_SERVICES, MOCK_USER_DATA
|
|
|
|
from tests.common import MockConfigEntry
|
|
from tests.typing import ClientSessionGenerator
|
|
|
|
GUEST_WIFI_ENABLED: dict[str, dict] = {
|
|
"WLANConfiguration0": {
|
|
"GetInfo": {
|
|
"NewEnable": True,
|
|
"NewSSID": "HomeWifi",
|
|
}
|
|
},
|
|
"WLANConfiguration1": {
|
|
"GetInfo": {
|
|
"NewEnable": True,
|
|
"NewSSID": "GuestWifi",
|
|
}
|
|
},
|
|
}
|
|
|
|
GUEST_WIFI_DISABLED: dict[str, dict] = {
|
|
"WLANConfiguration0": {
|
|
"GetInfo": {
|
|
"NewEnable": True,
|
|
"NewSSID": "HomeWifi",
|
|
}
|
|
},
|
|
"WLANConfiguration1": {
|
|
"GetInfo": {
|
|
"NewEnable": False,
|
|
"NewSSID": "GuestWifi",
|
|
}
|
|
},
|
|
}
|
|
|
|
|
|
@pytest.mark.parametrize(("fc_data"), [({**MOCK_FB_SERVICES, **GUEST_WIFI_ENABLED})])
|
|
async def test_image_entities_initialized(
|
|
hass: HomeAssistant,
|
|
hass_client: ClientSessionGenerator,
|
|
fc_class_mock,
|
|
fh_class_mock,
|
|
) -> None:
|
|
"""Test image entities."""
|
|
|
|
entry = MockConfigEntry(domain=DOMAIN, data=MOCK_USER_DATA)
|
|
entry.add_to_hass(hass)
|
|
|
|
assert await async_setup_component(hass, DOMAIN, {})
|
|
await hass.async_block_till_done()
|
|
assert entry.state == ConfigEntryState.LOADED
|
|
|
|
images = hass.states.async_all(IMAGE_DOMAIN)
|
|
assert len(images) == 1
|
|
assert images[0].name == "Mock Title GuestWifi"
|
|
|
|
entity_registry = async_get_entity_registry(hass)
|
|
entity_entry = entity_registry.async_get("image.mock_title_guestwifi")
|
|
|
|
assert entity_entry.unique_id == "1c_ed_6f_12_34_11_guestwifi_qr_code"
|
|
|
|
|
|
@pytest.mark.parametrize(("fc_data"), [({**MOCK_FB_SERVICES, **GUEST_WIFI_DISABLED})])
|
|
async def test_image_guest_wifi_disabled(
|
|
hass: HomeAssistant,
|
|
hass_client: ClientSessionGenerator,
|
|
fc_class_mock,
|
|
fh_class_mock,
|
|
) -> None:
|
|
"""Test image entities."""
|
|
|
|
entry = MockConfigEntry(domain=DOMAIN, data=MOCK_USER_DATA)
|
|
entry.add_to_hass(hass)
|
|
|
|
assert await async_setup_component(hass, DOMAIN, {})
|
|
await hass.async_block_till_done()
|
|
assert entry.state == ConfigEntryState.LOADED
|
|
|
|
images = hass.states.async_all(IMAGE_DOMAIN)
|
|
assert len(images) == 0
|