Cleanup YAML import in aladdin_connect (#88694)

This commit is contained in:
epenet 2023-02-27 16:20:01 +01:00 committed by GitHub
parent ff4de8cd06
commit 7419a92a1b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 4 additions and 118 deletions

View File

@ -3,7 +3,6 @@ from __future__ import annotations
import asyncio import asyncio
from collections.abc import Mapping from collections.abc import Mapping
import logging
from typing import Any from typing import Any
from AIOAladdinConnect import AladdinConnectClient from AIOAladdinConnect import AladdinConnectClient
@ -20,8 +19,6 @@ from homeassistant.helpers.aiohttp_client import async_get_clientsession
from .const import CLIENT_ID, DOMAIN from .const import CLIENT_ID, DOMAIN
_LOGGER = logging.getLogger(__name__)
STEP_USER_DATA_SCHEMA = vol.Schema( STEP_USER_DATA_SCHEMA = vol.Schema(
{ {
vol.Required(CONF_USERNAME): str, vol.Required(CONF_USERNAME): str,
@ -134,12 +131,6 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
step_id="user", data_schema=STEP_USER_DATA_SCHEMA, errors=errors step_id="user", data_schema=STEP_USER_DATA_SCHEMA, errors=errors
) )
async def async_step_import(
self, import_data: dict[str, Any] | None = None
) -> FlowResult:
"""Import Aladin Connect config from configuration.yaml."""
return await self.async_step_user(import_data)
class InvalidAuth(HomeAssistantError): class InvalidAuth(HomeAssistantError):
"""Error to indicate there is invalid auth.""" """Error to indicate there is invalid auth."""

View File

@ -2,63 +2,24 @@
from __future__ import annotations from __future__ import annotations
from datetime import timedelta from datetime import timedelta
import logging from typing import Any
from typing import Any, Final
from AIOAladdinConnect import AladdinConnectClient from AIOAladdinConnect import AladdinConnectClient
import voluptuous as vol
from homeassistant.components.cover import ( from homeassistant.components.cover import CoverDeviceClass, CoverEntity
PLATFORM_SCHEMA as BASE_PLATFORM_SCHEMA, from homeassistant.config_entries import ConfigEntry
CoverDeviceClass, from homeassistant.const import STATE_CLOSED, STATE_CLOSING, STATE_OPENING
CoverEntity,
)
from homeassistant.config_entries import SOURCE_IMPORT, ConfigEntry
from homeassistant.const import (
CONF_PASSWORD,
CONF_USERNAME,
STATE_CLOSED,
STATE_CLOSING,
STATE_OPENING,
)
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.exceptions import PlatformNotReady from homeassistant.exceptions import PlatformNotReady
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import DeviceInfo from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
from .const import DOMAIN, STATES_MAP, SUPPORTED_FEATURES from .const import DOMAIN, STATES_MAP, SUPPORTED_FEATURES
from .model import DoorDevice from .model import DoorDevice
_LOGGER: Final = logging.getLogger(__name__)
PLATFORM_SCHEMA: Final = BASE_PLATFORM_SCHEMA.extend(
{vol.Required(CONF_USERNAME): cv.string, vol.Required(CONF_PASSWORD): cv.string}
)
SCAN_INTERVAL = timedelta(seconds=300) SCAN_INTERVAL = timedelta(seconds=300)
async def async_setup_platform(
hass: HomeAssistant,
config: ConfigType,
async_add_entities: AddEntitiesCallback,
discovery_info: DiscoveryInfoType | None = None,
) -> None:
"""Set up Aladdin Connect devices yaml depreciated."""
_LOGGER.warning(
"Configuring Aladdin Connect through yaml is deprecated. Please remove it from"
" your configuration as it has already been imported to a config entry"
)
await hass.async_create_task(
hass.config_entries.flow.async_init(
DOMAIN,
context={"source": SOURCE_IMPORT},
data=config,
)
)
async def async_setup_entry( async def async_setup_entry(
hass: HomeAssistant, hass: HomeAssistant,
config_entry: ConfigEntry, config_entry: ConfigEntry,

View File

@ -131,35 +131,6 @@ async def test_form_already_configured(
assert result2["reason"] == "already_configured" assert result2["reason"] == "already_configured"
async def test_import_flow_success(
hass: HomeAssistant, mock_aladdinconnect_api: MagicMock
) -> None:
"""Test a successful import of yaml."""
with patch(
"homeassistant.components.aladdin_connect.config_flow.AladdinConnectClient",
return_value=mock_aladdinconnect_api,
), patch(
"homeassistant.components.aladdin_connect.async_setup_entry", return_value=True
) as mock_setup_entry:
result2 = await hass.config_entries.flow.async_init(
DOMAIN,
context={"source": config_entries.SOURCE_IMPORT},
data={
CONF_USERNAME: "test-user",
CONF_PASSWORD: "test-password",
},
)
await hass.async_block_till_done()
assert result2["type"] == FlowResultType.CREATE_ENTRY
assert result2["title"] == "Aladdin Connect"
assert result2["data"] == {
CONF_USERNAME: "test-user",
CONF_PASSWORD: "test-password",
}
assert len(mock_setup_entry.mock_calls) == 1
async def test_reauth_flow( async def test_reauth_flow(
hass: HomeAssistant, mock_aladdinconnect_api: MagicMock hass: HomeAssistant, mock_aladdinconnect_api: MagicMock
) -> None: ) -> None:

View File

@ -1,16 +1,12 @@
"""Test the Aladdin Connect Cover.""" """Test the Aladdin Connect Cover."""
from unittest.mock import AsyncMock, MagicMock, patch from unittest.mock import AsyncMock, MagicMock, patch
import pytest
from homeassistant.components.aladdin_connect.const import DOMAIN from homeassistant.components.aladdin_connect.const import DOMAIN
from homeassistant.components.aladdin_connect.cover import SCAN_INTERVAL from homeassistant.components.aladdin_connect.cover import SCAN_INTERVAL
from homeassistant.components.cover import DOMAIN as COVER_DOMAIN from homeassistant.components.cover import DOMAIN as COVER_DOMAIN
from homeassistant.config_entries import ConfigEntryState from homeassistant.config_entries import ConfigEntryState
from homeassistant.const import ( from homeassistant.const import (
ATTR_ENTITY_ID, ATTR_ENTITY_ID,
CONF_PASSWORD,
CONF_USERNAME,
SERVICE_CLOSE_COVER, SERVICE_CLOSE_COVER,
SERVICE_OPEN_COVER, SERVICE_OPEN_COVER,
STATE_CLOSED, STATE_CLOSED,
@ -196,36 +192,3 @@ async def test_cover_operation(
await hass.async_block_till_done() await hass.async_block_till_done()
assert hass.states.get("cover.home").state == STATE_UNKNOWN assert hass.states.get("cover.home").state == STATE_UNKNOWN
async def test_yaml_import(
hass: HomeAssistant,
caplog: pytest.LogCaptureFixture,
mock_aladdinconnect_api: MagicMock,
) -> None:
"""Test setup YAML import."""
assert COVER_DOMAIN not in hass.config.components
with patch(
"homeassistant.components.aladdin_connect.config_flow.AladdinConnectClient",
return_value=mock_aladdinconnect_api,
):
await async_setup_component(
hass,
COVER_DOMAIN,
{
COVER_DOMAIN: {
"platform": DOMAIN,
"username": "test-user",
"password": "test-password",
}
},
)
await hass.async_block_till_done()
assert hass.config_entries.async_entries(DOMAIN)
assert "Configuring Aladdin Connect through yaml is deprecated" in caplog.text
assert hass.config_entries.async_entries(DOMAIN)
config_data = hass.config_entries.async_entries(DOMAIN)[0].data
assert config_data[CONF_USERNAME] == "test-user"
assert config_data[CONF_PASSWORD] == "test-password"