Remove deprecated Uptime YAML configuration (#86292)

This commit is contained in:
Franck Nijhof 2023-01-20 17:50:32 +01:00 committed by GitHub
parent 7e8c081065
commit 914704e459
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 7 additions and 111 deletions

View file

@ -6,10 +6,9 @@ from typing import Any
import voluptuous as vol import voluptuous as vol
from homeassistant.config_entries import ConfigFlow from homeassistant.config_entries import ConfigFlow
from homeassistant.const import CONF_NAME
from homeassistant.data_entry_flow import FlowResult from homeassistant.data_entry_flow import FlowResult
from .const import DEFAULT_NAME, DOMAIN from .const import DOMAIN
class UptimeConfigFlow(ConfigFlow, domain=DOMAIN): class UptimeConfigFlow(ConfigFlow, domain=DOMAIN):
@ -26,12 +25,8 @@ class UptimeConfigFlow(ConfigFlow, domain=DOMAIN):
if user_input is not None: if user_input is not None:
return self.async_create_entry( return self.async_create_entry(
title=user_input.get(CONF_NAME, DEFAULT_NAME), title="Uptime",
data={}, data={},
) )
return self.async_show_form(step_id="user", data_schema=vol.Schema({})) return self.async_show_form(step_id="user", data_schema=vol.Schema({}))
async def async_step_import(self, user_input: dict[str, Any]) -> FlowResult:
"""Handle import from configuration.yaml."""
return await self.async_step_user(user_input)

View file

@ -5,5 +5,3 @@ from homeassistant.const import Platform
DOMAIN: Final = "uptime" DOMAIN: Final = "uptime"
PLATFORMS: Final = [Platform.SENSOR] PLATFORMS: Final = [Platform.SENSOR]
DEFAULT_NAME: Final = "Uptime"

View file

@ -1,60 +1,15 @@
"""Platform to retrieve uptime for Home Assistant.""" """Platform to retrieve uptime for Home Assistant."""
from __future__ import annotations from __future__ import annotations
import voluptuous as vol from homeassistant.components.sensor import SensorDeviceClass, SensorEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.components.sensor import (
PLATFORM_SCHEMA,
SensorDeviceClass,
SensorEntity,
)
from homeassistant.config_entries import SOURCE_IMPORT, ConfigEntry
from homeassistant.const import CONF_NAME, CONF_UNIT_OF_MEASUREMENT
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.device_registry import DeviceEntryType from homeassistant.helpers.device_registry import DeviceEntryType
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.issue_registry import IssueSeverity, async_create_issue
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
import homeassistant.util.dt as dt_util import homeassistant.util.dt as dt_util
from .const import DEFAULT_NAME, DOMAIN from .const import DOMAIN
PLATFORM_SCHEMA = vol.All(
cv.removed(CONF_UNIT_OF_MEASUREMENT, raise_if_present=False),
PLATFORM_SCHEMA.extend(
{
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
vol.Remove(CONF_UNIT_OF_MEASUREMENT): cv.string,
},
),
)
async def async_setup_platform(
hass: HomeAssistant,
config: ConfigType,
async_add_entities: AddEntitiesCallback,
discovery_info: DiscoveryInfoType | None = None,
) -> None:
"""Set up the uptime sensor platform."""
async_create_issue(
hass,
DOMAIN,
"removed_yaml",
breaks_in_ha_version="2022.12.0",
is_fixable=False,
severity=IssueSeverity.WARNING,
translation_key="removed_yaml",
)
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(

View file

@ -1,11 +1,8 @@
"""Tests for the Uptime config flow.""" """Tests for the Uptime config flow."""
from unittest.mock import MagicMock from unittest.mock import MagicMock
import pytest
from homeassistant.components.uptime.const import DOMAIN from homeassistant.components.uptime.const import DOMAIN
from homeassistant.config_entries import SOURCE_IMPORT, SOURCE_USER from homeassistant.config_entries import SOURCE_USER
from homeassistant.const import CONF_NAME
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.data_entry_flow import FlowResultType from homeassistant.data_entry_flow import FlowResultType
@ -34,34 +31,16 @@ async def test_full_user_flow(
assert result2.get("data") == {} assert result2.get("data") == {}
@pytest.mark.parametrize("source", [SOURCE_USER, SOURCE_IMPORT])
async def test_single_instance_allowed( async def test_single_instance_allowed(
hass: HomeAssistant, hass: HomeAssistant,
mock_config_entry: MockConfigEntry, mock_config_entry: MockConfigEntry,
source: str,
) -> None: ) -> None:
"""Test we abort if already setup.""" """Test we abort if already setup."""
mock_config_entry.add_to_hass(hass) mock_config_entry.add_to_hass(hass)
result = await hass.config_entries.flow.async_init( result = await hass.config_entries.flow.async_init(
DOMAIN, context={"source": source} DOMAIN, context={"source": SOURCE_USER}
) )
assert result.get("type") == FlowResultType.ABORT assert result.get("type") == FlowResultType.ABORT
assert result.get("reason") == "single_instance_allowed" assert result.get("reason") == "single_instance_allowed"
async def test_import_flow(
hass: HomeAssistant,
mock_setup_entry: MagicMock,
) -> None:
"""Test the import configuration flow."""
result = await hass.config_entries.flow.async_init(
DOMAIN,
context={"source": SOURCE_IMPORT},
data={CONF_NAME: "My Uptime"},
)
assert result.get("type") == FlowResultType.CREATE_ENTRY
assert result.get("title") == "My Uptime"
assert result.get("data") == {}

View file

@ -1,12 +1,7 @@
"""Tests for the Uptime integration.""" """Tests for the Uptime integration."""
from unittest.mock import AsyncMock
from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN
from homeassistant.components.uptime.const import DOMAIN from homeassistant.components.uptime.const import DOMAIN
from homeassistant.config_entries import ConfigEntryState from homeassistant.config_entries import ConfigEntryState
from homeassistant.const import CONF_NAME
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.setup import async_setup_component
from tests.common import MockConfigEntry from tests.common import MockConfigEntry
@ -27,29 +22,3 @@ async def test_load_unload_config_entry(
assert not hass.data.get(DOMAIN) assert not hass.data.get(DOMAIN)
assert mock_config_entry.state is ConfigEntryState.NOT_LOADED assert mock_config_entry.state is ConfigEntryState.NOT_LOADED
async def test_import_config(
hass: HomeAssistant,
mock_setup_entry: AsyncMock,
) -> None:
"""Test Uptime being set up from config via import."""
assert await async_setup_component(
hass,
SENSOR_DOMAIN,
{
SENSOR_DOMAIN: {
"platform": DOMAIN,
CONF_NAME: "My Uptime",
}
},
)
await hass.async_block_till_done()
config_entries = hass.config_entries.async_entries(DOMAIN)
assert len(config_entries) == 1
entry = config_entries[0]
assert entry.title == "My Uptime"
assert entry.unique_id is None
assert entry.data == {}