From 82e9792b4d44c653cfc38c495e8e6907d08878cd Mon Sep 17 00:00:00 2001 From: Jan-Philipp Benecke Date: Wed, 16 Oct 2024 20:46:00 +0200 Subject: [PATCH] Remove deprecated map integration (#128529) --- .strict-typing | 1 - .../components/default_config/manifest.json | 1 - homeassistant/components/map/__init__.py | 53 -------- homeassistant/components/map/manifest.json | 9 -- mypy.ini | 10 -- script/hassfest/manifest.py | 1 - tests/components/map/__init__.py | 1 - tests/components/map/test_init.py | 118 ------------------ 8 files changed, 194 deletions(-) delete mode 100644 homeassistant/components/map/__init__.py delete mode 100644 homeassistant/components/map/manifest.json delete mode 100644 tests/components/map/__init__.py delete mode 100644 tests/components/map/test_init.py diff --git a/.strict-typing b/.strict-typing index c0b65c0f3da..e1935dadd8a 100644 --- a/.strict-typing +++ b/.strict-typing @@ -302,7 +302,6 @@ homeassistant.components.lookin.* homeassistant.components.luftdaten.* homeassistant.components.madvr.* homeassistant.components.manual.* -homeassistant.components.map.* homeassistant.components.mastodon.* homeassistant.components.matrix.* homeassistant.components.matter.* diff --git a/homeassistant/components/default_config/manifest.json b/homeassistant/components/default_config/manifest.json index cbadb704a42..addf49b9542 100644 --- a/homeassistant/components/default_config/manifest.json +++ b/homeassistant/components/default_config/manifest.json @@ -12,7 +12,6 @@ "history", "homeassistant_alerts", "logbook", - "map", "media_source", "mobile_app", "my", diff --git a/homeassistant/components/map/__init__.py b/homeassistant/components/map/__init__.py deleted file mode 100644 index 25095e92b93..00000000000 --- a/homeassistant/components/map/__init__.py +++ /dev/null @@ -1,53 +0,0 @@ -"""Support for showing device locations.""" - -from homeassistant.components import onboarding -from homeassistant.components.lovelace import _create_map_dashboard -from homeassistant.core import DOMAIN as HOMEASSISTANT_DOMAIN, HomeAssistant -from homeassistant.helpers import config_validation as cv -from homeassistant.helpers.issue_registry import IssueSeverity, async_create_issue -from homeassistant.helpers.storage import Store -from homeassistant.helpers.typing import ConfigType - -DOMAIN = "map" - -CONFIG_SCHEMA = cv.empty_config_schema(DOMAIN) - -STORAGE_KEY = DOMAIN -STORAGE_VERSION_MAJOR = 1 - - -async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: - """Create a map panel.""" - - if DOMAIN in config: - async_create_issue( - hass, - HOMEASSISTANT_DOMAIN, - f"deprecated_yaml_{DOMAIN}", - breaks_in_ha_version="2024.10.0", - is_fixable=False, - is_persistent=False, - issue_domain=DOMAIN, - severity=IssueSeverity.WARNING, - translation_key="deprecated_yaml", - translation_placeholders={ - "domain": DOMAIN, - "integration_title": "map", - }, - ) - - store: Store[dict[str, bool]] = Store( - hass, - STORAGE_VERSION_MAJOR, - STORAGE_KEY, - ) - data = await store.async_load() - if data: - return True - - if onboarding.async_is_onboarded(hass): - await _create_map_dashboard(hass) - - await store.async_save({"migrated": True}) - - return True diff --git a/homeassistant/components/map/manifest.json b/homeassistant/components/map/manifest.json deleted file mode 100644 index 6a0333c862a..00000000000 --- a/homeassistant/components/map/manifest.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "domain": "map", - "name": "Map", - "codeowners": [], - "dependencies": ["frontend", "lovelace"], - "documentation": "https://www.home-assistant.io/integrations/map", - "integration_type": "system", - "quality_scale": "internal" -} diff --git a/mypy.ini b/mypy.ini index 700bcb23f2a..4cc2b87a6cf 100644 --- a/mypy.ini +++ b/mypy.ini @@ -2775,16 +2775,6 @@ disallow_untyped_defs = true warn_return_any = true warn_unreachable = true -[mypy-homeassistant.components.map.*] -check_untyped_defs = true -disallow_incomplete_defs = true -disallow_subclassing_any = true -disallow_untyped_calls = true -disallow_untyped_decorators = true -disallow_untyped_defs = true -warn_return_any = true -warn_unreachable = true - [mypy-homeassistant.components.mastodon.*] check_untyped_defs = true disallow_incomplete_defs = true diff --git a/script/hassfest/manifest.py b/script/hassfest/manifest.py index 8643e34725f..3f6a5fa310b 100644 --- a/script/hassfest/manifest.py +++ b/script/hassfest/manifest.py @@ -88,7 +88,6 @@ NO_IOT_CLASS = [ "logbook", "logger", "lovelace", - "map", "media_source", "my", "onboarding", diff --git a/tests/components/map/__init__.py b/tests/components/map/__init__.py deleted file mode 100644 index 142afc0d5c9..00000000000 --- a/tests/components/map/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Tests for Map.""" diff --git a/tests/components/map/test_init.py b/tests/components/map/test_init.py deleted file mode 100644 index 217550852bd..00000000000 --- a/tests/components/map/test_init.py +++ /dev/null @@ -1,118 +0,0 @@ -"""Test the Map initialization.""" - -from collections.abc import Generator -from typing import Any -from unittest.mock import MagicMock, patch - -import pytest - -from homeassistant.components.map import DOMAIN -from homeassistant.core import DOMAIN as HOMEASSISTANT_DOMAIN, HomeAssistant -from homeassistant.helpers import issue_registry as ir -from homeassistant.setup import async_setup_component - -from tests.common import MockModule, mock_integration - - -@pytest.fixture -def mock_onboarding_not_done() -> Generator[MagicMock]: - """Mock that Home Assistant is currently onboarding.""" - with patch( - "homeassistant.components.onboarding.async_is_onboarded", - return_value=False, - ) as mock_onboarding: - yield mock_onboarding - - -@pytest.fixture -def mock_onboarding_done() -> Generator[MagicMock]: - """Mock that Home Assistant is currently onboarding.""" - with patch( - "homeassistant.components.onboarding.async_is_onboarded", - return_value=True, - ) as mock_onboarding: - yield mock_onboarding - - -@pytest.fixture -def mock_create_map_dashboard() -> Generator[MagicMock]: - """Mock the create map dashboard function.""" - with patch( - "homeassistant.components.map._create_map_dashboard", - ) as mock_create_map_dashboard: - yield mock_create_map_dashboard - - -async def test_create_dashboards_when_onboarded( - hass: HomeAssistant, - hass_storage: dict[str, Any], - mock_onboarding_done, - mock_create_map_dashboard, -) -> None: - """Test we create map dashboard when onboarded.""" - # Mock the lovelace integration to prevent it from creating a map dashboard - mock_integration(hass, MockModule("lovelace")) - - assert await async_setup_component(hass, DOMAIN, {}) - - mock_create_map_dashboard.assert_called_once() - assert hass_storage[DOMAIN]["data"] == {"migrated": True} - - -async def test_create_dashboards_once_when_onboarded( - hass: HomeAssistant, - hass_storage: dict[str, Any], - mock_onboarding_done, - mock_create_map_dashboard, -) -> None: - """Test we create map dashboard once when onboarded.""" - hass_storage[DOMAIN] = { - "version": 1, - "minor_version": 1, - "key": "map", - "data": {"migrated": True}, - } - - # Mock the lovelace integration to prevent it from creating a map dashboard - mock_integration(hass, MockModule("lovelace")) - - assert await async_setup_component(hass, DOMAIN, {}) - - mock_create_map_dashboard.assert_not_called() - assert hass_storage[DOMAIN]["data"] == {"migrated": True} - - -async def test_create_dashboards_when_not_onboarded( - hass: HomeAssistant, - hass_storage: dict[str, Any], - mock_onboarding_not_done, - mock_create_map_dashboard, -) -> None: - """Test we do not create map dashboard when not onboarded.""" - # Mock the lovelace integration to prevent it from creating a map dashboard - mock_integration(hass, MockModule("lovelace")) - - assert await async_setup_component(hass, DOMAIN, {}) - - mock_create_map_dashboard.assert_not_called() - assert hass_storage[DOMAIN]["data"] == {"migrated": True} - - -async def test_create_issue_when_not_manually_configured( - hass: HomeAssistant, issue_registry: ir.IssueRegistry -) -> None: - """Test creating issue registry issues.""" - assert await async_setup_component(hass, DOMAIN, {}) - - assert not issue_registry.async_get_issue( - HOMEASSISTANT_DOMAIN, "deprecated_yaml_map" - ) - - -async def test_create_issue_when_manually_configured( - hass: HomeAssistant, issue_registry: ir.IssueRegistry -) -> None: - """Test creating issue registry issues.""" - assert await async_setup_component(hass, DOMAIN, {DOMAIN: {}}) - - assert issue_registry.async_get_issue(HOMEASSISTANT_DOMAIN, "deprecated_yaml_map")