60 lines
1.9 KiB
Python
60 lines
1.9 KiB
Python
|
"""Tests for the DLNA DMR __init__ module."""
|
||
|
|
||
|
from unittest.mock import Mock
|
||
|
|
||
|
from async_upnp_client import UpnpError
|
||
|
|
||
|
from homeassistant.components.dlna_dmr.const import (
|
||
|
CONF_LISTEN_PORT,
|
||
|
DOMAIN as DLNA_DOMAIN,
|
||
|
)
|
||
|
from homeassistant.components.media_player.const import DOMAIN as MEDIA_PLAYER_DOMAIN
|
||
|
from homeassistant.const import CONF_NAME, CONF_PLATFORM, CONF_URL
|
||
|
from homeassistant.core import HomeAssistant
|
||
|
from homeassistant.helpers.typing import ConfigType
|
||
|
from homeassistant.setup import async_setup_component
|
||
|
|
||
|
from .conftest import MOCK_DEVICE_LOCATION
|
||
|
|
||
|
|
||
|
async def test_import_flow_started(hass: HomeAssistant, domain_data_mock: Mock) -> None:
|
||
|
"""Test import flow of YAML config is started if there's config data."""
|
||
|
mock_config: ConfigType = {
|
||
|
MEDIA_PLAYER_DOMAIN: [
|
||
|
{
|
||
|
CONF_PLATFORM: DLNA_DOMAIN,
|
||
|
CONF_URL: MOCK_DEVICE_LOCATION,
|
||
|
CONF_LISTEN_PORT: 1234,
|
||
|
},
|
||
|
{
|
||
|
CONF_PLATFORM: "other_domain",
|
||
|
CONF_URL: MOCK_DEVICE_LOCATION,
|
||
|
CONF_NAME: "another device",
|
||
|
},
|
||
|
]
|
||
|
}
|
||
|
|
||
|
# Device is not available yet
|
||
|
domain_data_mock.upnp_factory.async_create_device.side_effect = UpnpError
|
||
|
|
||
|
# Run the setup
|
||
|
await async_setup_component(hass, DLNA_DOMAIN, mock_config)
|
||
|
await hass.async_block_till_done()
|
||
|
|
||
|
# Check config_flow has completed
|
||
|
assert hass.config_entries.flow.async_progress(include_uninitialized=True) == []
|
||
|
|
||
|
# Check device contact attempt was made
|
||
|
domain_data_mock.upnp_factory.async_create_device.assert_awaited_once_with(
|
||
|
MOCK_DEVICE_LOCATION
|
||
|
)
|
||
|
|
||
|
# Check the device is added to the unmigrated configs
|
||
|
assert domain_data_mock.unmigrated_config == {
|
||
|
MOCK_DEVICE_LOCATION: {
|
||
|
CONF_PLATFORM: DLNA_DOMAIN,
|
||
|
CONF_URL: MOCK_DEVICE_LOCATION,
|
||
|
CONF_LISTEN_PORT: 1234,
|
||
|
}
|
||
|
}
|