From 44f715bd027826f098b71ed1666c7447c18eb6f1 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Fri, 24 May 2024 15:54:20 +0200 Subject: [PATCH] Use issue_registry fixture in component tests (#118041) --- tests/components/airvisual/test_init.py | 6 ++- .../components/bayesian/test_binary_sensor.py | 32 ++++++++------ tests/components/bluetooth/test_init.py | 10 ++--- .../bmw_connected_drive/test_coordinator.py | 4 +- tests/components/calendar/test_init.py | 4 +- tests/components/climate/test_init.py | 12 +++--- tests/components/cloud/test_client.py | 7 ++- tests/components/cloud/test_tts.py | 14 +++--- tests/components/dynalite/test_config_flow.py | 13 +++--- tests/components/enigma2/test_config_flow.py | 6 +-- tests/components/esphome/test_manager.py | 10 ++--- tests/components/litterrobot/test_vacuum.py | 2 +- tests/components/map/test_init.py | 10 +++-- tests/components/matter/test_init.py | 8 ++-- tests/components/otbr/test_init.py | 24 ++++++----- tests/components/panel_iframe/test_init.py | 5 ++- tests/components/recorder/test_init.py | 15 ++++--- tests/components/recorder/test_util.py | 19 +++++--- tests/components/reolink/test_init.py | 16 +++---- tests/components/repairs/test_init.py | 43 ++++++++----------- tests/components/ring/test_init.py | 5 +-- .../components/seventeentrack/test_sensor.py | 4 +- tests/components/shelly/test_climate.py | 4 +- tests/components/shelly/test_switch.py | 2 +- tests/components/sonos/test_repairs.py | 10 +++-- tests/components/sql/test_sensor.py | 8 ++-- tests/components/tasmota/test_discovery.py | 5 +-- tests/components/tessie/test_lock.py | 10 ++--- tests/components/time_date/test_sensor.py | 2 +- tests/components/zha/test_repairs.py | 14 +++--- tests/components/zwave_js/test_init.py | 9 ++-- 31 files changed, 167 insertions(+), 166 deletions(-) diff --git a/tests/components/airvisual/test_init.py b/tests/components/airvisual/test_init.py index e6cd5968cea..7fa9f4ca779 100644 --- a/tests/components/airvisual/test_init.py +++ b/tests/components/airvisual/test_init.py @@ -101,7 +101,10 @@ async def test_migration_1_2(hass: HomeAssistant, mock_pyairvisual) -> None: async def test_migration_2_3( - hass: HomeAssistant, mock_pyairvisual, device_registry: dr.DeviceRegistry + hass: HomeAssistant, + mock_pyairvisual, + device_registry: dr.DeviceRegistry, + issue_registry: ir.IssueRegistry, ) -> None: """Test migrating from version 2 to 3.""" entry = MockConfigEntry( @@ -134,5 +137,4 @@ async def test_migration_2_3( for domain, entry_count in ((DOMAIN, 0), (AIRVISUAL_PRO_DOMAIN, 1)): assert len(hass.config_entries.async_entries(domain)) == entry_count - issue_registry = ir.async_get(hass) assert len(issue_registry.issues) == 1 diff --git a/tests/components/bayesian/test_binary_sensor.py b/tests/components/bayesian/test_binary_sensor.py index ac80878c836..8dedce0c297 100644 --- a/tests/components/bayesian/test_binary_sensor.py +++ b/tests/components/bayesian/test_binary_sensor.py @@ -20,9 +20,9 @@ from homeassistant.const import ( STATE_UNKNOWN, ) from homeassistant.core import Context, HomeAssistant, callback +from homeassistant.helpers import issue_registry as ir from homeassistant.helpers.entity_registry import async_get as async_get_entities from homeassistant.helpers.event import async_track_state_change_event -from homeassistant.helpers.issue_registry import async_get from homeassistant.setup import async_setup_component from tests.common import get_fixture_path @@ -104,7 +104,9 @@ async def test_unknown_state_does_not_influence_probability( assert state.attributes.get("probability") == prior -async def test_sensor_numeric_state(hass: HomeAssistant) -> None: +async def test_sensor_numeric_state( + hass: HomeAssistant, issue_registry: ir.IssueRegistry +) -> None: """Test sensor on numeric state platform observations.""" config = { "binary_sensor": { @@ -200,7 +202,7 @@ async def test_sensor_numeric_state(hass: HomeAssistant) -> None: assert state.state == "off" - assert len(async_get(hass).issues) == 0 + assert len(issue_registry.issues) == 0 async def test_sensor_state(hass: HomeAssistant) -> None: @@ -329,7 +331,7 @@ async def test_sensor_value_template(hass: HomeAssistant) -> None: assert state.state == "off" -async def test_threshold(hass: HomeAssistant) -> None: +async def test_threshold(hass: HomeAssistant, issue_registry: ir.IssueRegistry) -> None: """Test sensor on probability threshold limits.""" config = { "binary_sensor": { @@ -359,7 +361,7 @@ async def test_threshold(hass: HomeAssistant) -> None: assert round(abs(1.0 - state.attributes.get("probability")), 7) == 0 assert state.state == "on" - assert len(async_get(hass).issues) == 0 + assert len(issue_registry.issues) == 0 async def test_multiple_observations(hass: HomeAssistant) -> None: @@ -513,7 +515,9 @@ async def test_multiple_numeric_observations(hass: HomeAssistant) -> None: assert state.attributes.get("observations")[1]["platform"] == "numeric_state" -async def test_mirrored_observations(hass: HomeAssistant) -> None: +async def test_mirrored_observations( + hass: HomeAssistant, issue_registry: ir.IssueRegistry +) -> None: """Test whether mirrored entries are detected and appropriate issues are created.""" config = { @@ -586,22 +590,24 @@ async def test_mirrored_observations(hass: HomeAssistant) -> None: "prior": 0.1, } } - assert len(async_get(hass).issues) == 0 + assert len(issue_registry.issues) == 0 assert await async_setup_component(hass, "binary_sensor", config) await hass.async_block_till_done() hass.states.async_set("sensor.test_monitored2", "on") await hass.async_block_till_done() - assert len(async_get(hass).issues) == 3 + assert len(issue_registry.issues) == 3 assert ( - async_get(hass).issues[ + issue_registry.issues[ ("bayesian", "mirrored_entry/Test_Binary/sensor.test_monitored1") ] is not None ) -async def test_missing_prob_given_false(hass: HomeAssistant) -> None: +async def test_missing_prob_given_false( + hass: HomeAssistant, issue_registry: ir.IssueRegistry +) -> None: """Test whether missing prob_given_false are detected and appropriate issues are created.""" config = { @@ -630,15 +636,15 @@ async def test_missing_prob_given_false(hass: HomeAssistant) -> None: "prior": 0.1, } } - assert len(async_get(hass).issues) == 0 + assert len(issue_registry.issues) == 0 assert await async_setup_component(hass, "binary_sensor", config) await hass.async_block_till_done() hass.states.async_set("sensor.test_monitored2", "on") await hass.async_block_till_done() - assert len(async_get(hass).issues) == 3 + assert len(issue_registry.issues) == 3 assert ( - async_get(hass).issues[ + issue_registry.issues[ ("bayesian", "no_prob_given_false/missingpgf/sensor.test_monitored1") ] is not None diff --git a/tests/components/bluetooth/test_init.py b/tests/components/bluetooth/test_init.py index ebc50779c9c..a3eb3ef464d 100644 --- a/tests/components/bluetooth/test_init.py +++ b/tests/components/bluetooth/test_init.py @@ -40,7 +40,7 @@ from homeassistant.components.bluetooth.match import ( from homeassistant.config_entries import ConfigEntryState from homeassistant.const import EVENT_HOMEASSISTANT_STARTED, EVENT_HOMEASSISTANT_STOP from homeassistant.core import HomeAssistant, callback -from homeassistant.helpers.issue_registry import async_get as async_get_issue_registry +from homeassistant.helpers import issue_registry as ir from homeassistant.setup import async_setup_component from homeassistant.util import dt as dt_util @@ -3151,6 +3151,7 @@ async def test_issue_outdated_haos_removed( mock_bleak_scanner_start: MagicMock, no_adapters: None, operating_system_85: None, + issue_registry: ir.IssueRegistry, ) -> None: """Test we do not create an issue on outdated haos anymore.""" assert await async_setup_component(hass, bluetooth.DOMAIN, {}) @@ -3158,8 +3159,7 @@ async def test_issue_outdated_haos_removed( hass.bus.async_fire(EVENT_HOMEASSISTANT_STARTED) await hass.async_block_till_done() - registry = async_get_issue_registry(hass) - issue = registry.async_get_issue(DOMAIN, "haos_outdated") + issue = issue_registry.async_get_issue(DOMAIN, "haos_outdated") assert issue is None @@ -3168,6 +3168,7 @@ async def test_haos_9_or_later( mock_bleak_scanner_start: MagicMock, one_adapter: None, operating_system_90: None, + issue_registry: ir.IssueRegistry, ) -> None: """Test we do not create issues for haos 9.x or later.""" entry = MockConfigEntry( @@ -3178,8 +3179,7 @@ async def test_haos_9_or_later( await hass.async_block_till_done() hass.bus.async_fire(EVENT_HOMEASSISTANT_STARTED) await hass.async_block_till_done() - registry = async_get_issue_registry(hass) - issue = registry.async_get_issue(DOMAIN, "haos_outdated") + issue = issue_registry.async_get_issue(DOMAIN, "haos_outdated") assert issue is None diff --git a/tests/components/bmw_connected_drive/test_coordinator.py b/tests/components/bmw_connected_drive/test_coordinator.py index 862ff0cba55..812d309a257 100644 --- a/tests/components/bmw_connected_drive/test_coordinator.py +++ b/tests/components/bmw_connected_drive/test_coordinator.py @@ -10,7 +10,7 @@ import respx from homeassistant.components.bmw_connected_drive import DOMAIN as BMW_DOMAIN from homeassistant.core import DOMAIN as HA_DOMAIN, HomeAssistant from homeassistant.exceptions import ConfigEntryAuthFailed -from homeassistant.helpers.issue_registry import IssueRegistry +from homeassistant.helpers import issue_registry as ir from homeassistant.helpers.update_coordinator import UpdateFailed from . import FIXTURE_CONFIG_ENTRY @@ -100,7 +100,7 @@ async def test_init_reauth( hass: HomeAssistant, bmw_fixture: respx.Router, freezer: FrozenDateTimeFactory, - issue_registry: IssueRegistry, + issue_registry: ir.IssueRegistry, ) -> None: """Test the reauth form.""" diff --git a/tests/components/calendar/test_init.py b/tests/components/calendar/test_init.py index c2842eafb2c..325accae72f 100644 --- a/tests/components/calendar/test_init.py +++ b/tests/components/calendar/test_init.py @@ -19,7 +19,7 @@ from homeassistant.components.calendar import ( ) from homeassistant.core import HomeAssistant from homeassistant.exceptions import HomeAssistantError -from homeassistant.helpers.issue_registry import IssueRegistry +from homeassistant.helpers import issue_registry as ir import homeassistant.util.dt as dt_util from .conftest import TEST_DOMAIN, MockCalendarEntity, MockConfigEntry @@ -572,7 +572,7 @@ async def test_list_events_missing_fields(hass: HomeAssistant) -> None: async def test_issue_deprecated_service_calendar_list_events( hass: HomeAssistant, - issue_registry: IssueRegistry, + issue_registry: ir.IssueRegistry, caplog: pytest.LogCaptureFixture, ) -> None: """Test the issue is raised on deprecated service weather.get_forecast.""" diff --git a/tests/components/climate/test_init.py b/tests/components/climate/test_init.py index 0d6927ae0f9..a459b991203 100644 --- a/tests/components/climate/test_init.py +++ b/tests/components/climate/test_init.py @@ -823,6 +823,7 @@ async def test_issue_aux_property_deprecated( translation_placeholders_extra: dict[str, str], report: str, module: str, + issue_registry: ir.IssueRegistry, ) -> None: """Test the issue is raised on deprecated auxiliary heater attributes.""" @@ -894,8 +895,7 @@ async def test_issue_aux_property_deprecated( assert climate_entity.state == HVACMode.HEAT - issues = ir.async_get(hass) - issue = issues.async_get_issue("climate", "deprecated_climate_aux_test") + issue = issue_registry.async_get_issue("climate", "deprecated_climate_aux_test") assert issue assert issue.issue_domain == "test" assert issue.issue_id == "deprecated_climate_aux_test" @@ -954,6 +954,7 @@ async def test_no_issue_aux_property_deprecated_for_core( translation_placeholders_extra: dict[str, str], report: str, module: str, + issue_registry: ir.IssueRegistry, ) -> None: """Test the no issue on deprecated auxiliary heater attributes for core integrations.""" @@ -1023,8 +1024,7 @@ async def test_no_issue_aux_property_deprecated_for_core( assert climate_entity.state == HVACMode.HEAT - issues = ir.async_get(hass) - issue = issues.async_get_issue("climate", "deprecated_climate_aux_test") + issue = issue_registry.async_get_issue("climate", "deprecated_climate_aux_test") assert not issue assert ( @@ -1038,6 +1038,7 @@ async def test_no_issue_no_aux_property( hass: HomeAssistant, caplog: pytest.LogCaptureFixture, config_flow_fixture: None, + issue_registry: ir.IssueRegistry, ) -> None: """Test the issue is raised on deprecated auxiliary heater attributes.""" @@ -1082,8 +1083,7 @@ async def test_no_issue_no_aux_property( assert climate_entity.state == HVACMode.HEAT - issues = ir.async_get(hass) - assert len(issues.issues) == 0 + assert len(issue_registry.issues) == 0 assert ( "test::MockClimateEntityWithAux implements the `is_aux_heat` property or uses " diff --git a/tests/components/cloud/test_client.py b/tests/components/cloud/test_client.py index 5e15aa32b6f..ecc98cf5579 100644 --- a/tests/components/cloud/test_client.py +++ b/tests/components/cloud/test_client.py @@ -26,8 +26,7 @@ from homeassistant.components.homeassistant.exposed_entities import ( ) from homeassistant.const import CONTENT_TYPE_JSON, __version__ as HA_VERSION from homeassistant.core import HomeAssistant, State -from homeassistant.helpers import entity_registry as er -from homeassistant.helpers.issue_registry import IssueRegistry +from homeassistant.helpers import entity_registry as er, issue_registry as ir from homeassistant.setup import async_setup_component from homeassistant.util import dt as dt_util @@ -399,7 +398,7 @@ async def test_cloud_connection_info(hass: HomeAssistant) -> None: async def test_async_create_repair_issue_known( cloud: MagicMock, mock_cloud_setup: None, - issue_registry: IssueRegistry, + issue_registry: ir.IssueRegistry, translation_key: str, ) -> None: """Test create repair issue for known repairs.""" @@ -417,7 +416,7 @@ async def test_async_create_repair_issue_known( async def test_async_create_repair_issue_unknown( cloud: MagicMock, mock_cloud_setup: None, - issue_registry: IssueRegistry, + issue_registry: ir.IssueRegistry, ) -> None: """Test not creating repair issue for unknown repairs.""" identifier = "abc123" diff --git a/tests/components/cloud/test_tts.py b/tests/components/cloud/test_tts.py index 06dbcf174a7..6e5acdf6aa3 100644 --- a/tests/components/cloud/test_tts.py +++ b/tests/components/cloud/test_tts.py @@ -27,8 +27,8 @@ from homeassistant.components.tts.helper import get_engine_instance from homeassistant.config import async_process_ha_core_config from homeassistant.const import ATTR_ENTITY_ID, STATE_UNAVAILABLE, STATE_UNKNOWN from homeassistant.core import HomeAssistant +from homeassistant.helpers import issue_registry as ir from homeassistant.helpers.entity_registry import EntityRegistry -from homeassistant.helpers.issue_registry import IssueRegistry, IssueSeverity from homeassistant.setup import async_setup_component from . import PIPELINE_DATA @@ -143,7 +143,7 @@ async def test_prefs_default_voice( async def test_deprecated_platform_config( hass: HomeAssistant, - issue_registry: IssueRegistry, + issue_registry: ir.IssueRegistry, cloud: MagicMock, ) -> None: """Test cloud provider uses the preferences.""" @@ -157,7 +157,7 @@ async def test_deprecated_platform_config( assert issue.breaks_in_ha_version == "2024.9.0" assert issue.is_fixable is False assert issue.is_persistent is False - assert issue.severity == IssueSeverity.WARNING + assert issue.severity == ir.IssueSeverity.WARNING assert issue.translation_key == "deprecated_tts_platform_config" @@ -463,7 +463,7 @@ async def test_migrating_pipelines( ) async def test_deprecated_voice( hass: HomeAssistant, - issue_registry: IssueRegistry, + issue_registry: ir.IssueRegistry, cloud: MagicMock, hass_client: ClientSessionGenerator, data: dict[str, Any], @@ -555,7 +555,7 @@ async def test_deprecated_voice( assert issue.breaks_in_ha_version == "2024.8.0" assert issue.is_fixable is True assert issue.is_persistent is True - assert issue.severity == IssueSeverity.WARNING + assert issue.severity == ir.IssueSeverity.WARNING assert issue.translation_key == "deprecated_voice" assert issue.translation_placeholders == { "deprecated_voice": deprecated_voice, @@ -613,7 +613,7 @@ async def test_deprecated_voice( ) async def test_deprecated_gender( hass: HomeAssistant, - issue_registry: IssueRegistry, + issue_registry: ir.IssueRegistry, cloud: MagicMock, hass_client: ClientSessionGenerator, data: dict[str, Any], @@ -700,7 +700,7 @@ async def test_deprecated_gender( assert issue.breaks_in_ha_version == "2024.10.0" assert issue.is_fixable is True assert issue.is_persistent is True - assert issue.severity == IssueSeverity.WARNING + assert issue.severity == ir.IssueSeverity.WARNING assert issue.translation_key == "deprecated_gender" assert issue.translation_placeholders == { "integration_name": "Home Assistant Cloud", diff --git a/tests/components/dynalite/test_config_flow.py b/tests/components/dynalite/test_config_flow.py index 2b56786e4e0..33e8ea84b47 100644 --- a/tests/components/dynalite/test_config_flow.py +++ b/tests/components/dynalite/test_config_flow.py @@ -10,10 +10,7 @@ from homeassistant.config_entries import ConfigEntryState from homeassistant.const import CONF_PORT from homeassistant.core import DOMAIN as HOMEASSISTANT_DOMAIN, HomeAssistant from homeassistant.data_entry_flow import FlowResultType -from homeassistant.helpers.issue_registry import ( - IssueSeverity, - async_get as async_get_issue_registry, -) +from homeassistant.helpers import issue_registry as ir from homeassistant.setup import async_setup_component from tests.common import MockConfigEntry @@ -34,10 +31,10 @@ async def test_flow( exp_type, exp_result, exp_reason, + issue_registry: ir.IssueRegistry, ) -> None: """Run a flow with or without errors and return result.""" - registry = async_get_issue_registry(hass) - issue = registry.async_get_issue(dynalite.DOMAIN, "deprecated_yaml") + issue = issue_registry.async_get_issue(dynalite.DOMAIN, "deprecated_yaml") assert issue is None host = "1.2.3.4" with patch( @@ -55,12 +52,12 @@ async def test_flow( assert result["result"].state == exp_result if exp_reason: assert result["reason"] == exp_reason - issue = registry.async_get_issue( + issue = issue_registry.async_get_issue( HOMEASSISTANT_DOMAIN, f"deprecated_yaml_{dynalite.DOMAIN}" ) assert issue is not None assert issue.issue_domain == dynalite.DOMAIN - assert issue.severity == IssueSeverity.WARNING + assert issue.severity == ir.IssueSeverity.WARNING async def test_deprecated( diff --git a/tests/components/enigma2/test_config_flow.py b/tests/components/enigma2/test_config_flow.py index dfca569276d..08d8d04c3b9 100644 --- a/tests/components/enigma2/test_config_flow.py +++ b/tests/components/enigma2/test_config_flow.py @@ -12,7 +12,7 @@ from homeassistant.components.enigma2.const import DOMAIN from homeassistant.const import CONF_HOST from homeassistant.core import DOMAIN as HOMEASSISTANT_DOMAIN, HomeAssistant from homeassistant.data_entry_flow import FlowResultType -from homeassistant.helpers.issue_registry import IssueRegistry +from homeassistant.helpers import issue_registry as ir from .conftest import ( EXPECTED_OPTIONS, @@ -97,7 +97,7 @@ async def test_form_import( test_config: dict[str, Any], expected_data: dict[str, Any], expected_options: dict[str, Any], - issue_registry: IssueRegistry, + issue_registry: ir.IssueRegistry, ) -> None: """Test we get the form with import source.""" with ( @@ -143,7 +143,7 @@ async def test_form_import_errors( hass: HomeAssistant, exception: Exception, error_type: str, - issue_registry: IssueRegistry, + issue_registry: ir.IssueRegistry, ) -> None: """Test we handle errors on import.""" with patch( diff --git a/tests/components/esphome/test_manager.py b/tests/components/esphome/test_manager.py index e62c85b7f9a..7f7eed0ff04 100644 --- a/tests/components/esphome/test_manager.py +++ b/tests/components/esphome/test_manager.py @@ -52,6 +52,7 @@ async def test_esphome_device_service_calls_not_allowed( Awaitable[MockESPHomeDevice], ], caplog: pytest.LogCaptureFixture, + issue_registry: ir.IssueRegistry, ) -> None: """Test a device with service calls not allowed.""" entity_info = [] @@ -74,7 +75,6 @@ async def test_esphome_device_service_calls_not_allowed( ) await hass.async_block_till_done() assert len(mock_esphome_test) == 0 - issue_registry = ir.async_get(hass) issue = issue_registry.async_get_issue( "esphome", "service_calls_not_enabled-11:22:33:44:55:aa" ) @@ -95,6 +95,7 @@ async def test_esphome_device_service_calls_allowed( Awaitable[MockESPHomeDevice], ], caplog: pytest.LogCaptureFixture, + issue_registry: ir.IssueRegistry, ) -> None: """Test a device with service calls are allowed.""" await async_setup_component(hass, "tag", {}) @@ -126,7 +127,6 @@ async def test_esphome_device_service_calls_allowed( ) ) await hass.async_block_till_done() - issue_registry = ir.async_get(hass) issue = issue_registry.async_get_issue( "esphome", "service_calls_not_enabled-11:22:33:44:55:aa" ) @@ -254,6 +254,7 @@ async def test_esphome_device_with_old_bluetooth( [APIClient, list[EntityInfo], list[UserService], list[EntityState]], Awaitable[MockESPHomeDevice], ], + issue_registry: ir.IssueRegistry, ) -> None: """Test a device with old bluetooth creates an issue.""" entity_info = [] @@ -267,7 +268,6 @@ async def test_esphome_device_with_old_bluetooth( device_info={"bluetooth_proxy_feature_flags": 1, "esphome_version": "2023.3.0"}, ) await hass.async_block_till_done() - issue_registry = ir.async_get(hass) issue = issue_registry.async_get_issue( "esphome", "ble_firmware_outdated-11:22:33:44:55:AA" ) @@ -284,6 +284,7 @@ async def test_esphome_device_with_password( [APIClient, list[EntityInfo], list[UserService], list[EntityState]], Awaitable[MockESPHomeDevice], ], + issue_registry: ir.IssueRegistry, ) -> None: """Test a device with legacy password creates an issue.""" entity_info = [] @@ -308,7 +309,6 @@ async def test_esphome_device_with_password( entry=entry, ) await hass.async_block_till_done() - issue_registry = ir.async_get(hass) assert ( issue_registry.async_get_issue( # This issue uses the ESPHome mac address which @@ -327,6 +327,7 @@ async def test_esphome_device_with_current_bluetooth( [APIClient, list[EntityInfo], list[UserService], list[EntityState]], Awaitable[MockESPHomeDevice], ], + issue_registry: ir.IssueRegistry, ) -> None: """Test a device with recent bluetooth does not create an issue.""" entity_info = [] @@ -343,7 +344,6 @@ async def test_esphome_device_with_current_bluetooth( }, ) await hass.async_block_till_done() - issue_registry = ir.async_get(hass) assert ( # This issue uses the ESPHome device info mac address which # is always UPPER case diff --git a/tests/components/litterrobot/test_vacuum.py b/tests/components/litterrobot/test_vacuum.py index 68ebae1e239..735ee6653aa 100644 --- a/tests/components/litterrobot/test_vacuum.py +++ b/tests/components/litterrobot/test_vacuum.py @@ -143,6 +143,7 @@ async def test_commands( service: str, command: str, extra: dict[str, Any], + issue_registry: ir.IssueRegistry, ) -> None: """Test sending commands to the vacuum.""" await setup_integration(hass, mock_account, PLATFORM_DOMAIN) @@ -163,5 +164,4 @@ async def test_commands( ) getattr(mock_account.robots[0], command).assert_called_once() - issue_registry = ir.async_get(hass) assert set(issue_registry.issues.keys()) == issues diff --git a/tests/components/map/test_init.py b/tests/components/map/test_init.py index 6d79afefab3..69579dd40a6 100644 --- a/tests/components/map/test_init.py +++ b/tests/components/map/test_init.py @@ -98,19 +98,21 @@ async def test_create_dashboards_when_not_onboarded( assert hass_storage[DOMAIN]["data"] == {"migrated": True} -async def test_create_issue_when_not_manually_configured(hass: HomeAssistant) -> None: +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, {}) - issue_registry = ir.async_get(hass) assert not issue_registry.async_get_issue( HOMEASSISTANT_DOMAIN, "deprecated_yaml_map" ) -async def test_create_issue_when_manually_configured(hass: HomeAssistant) -> None: +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: {}}) - issue_registry = ir.async_get(hass) assert issue_registry.async_get_issue(HOMEASSISTANT_DOMAIN, "deprecated_yaml_map") diff --git a/tests/components/matter/test_init.py b/tests/components/matter/test_init.py index 37eab91894a..6e0a22188ec 100644 --- a/tests/components/matter/test_init.py +++ b/tests/components/matter/test_init.py @@ -414,8 +414,7 @@ async def test_update_addon( # This tests needs to be adjusted to remove lingering tasks @pytest.mark.parametrize("expected_lingering_tasks", [True]) async def test_issue_registry_invalid_version( - hass: HomeAssistant, - matter_client: MagicMock, + hass: HomeAssistant, matter_client: MagicMock, issue_registry: ir.IssueRegistry ) -> None: """Test issue registry for invalid version.""" original_connect_side_effect = matter_client.connect.side_effect @@ -433,10 +432,9 @@ async def test_issue_registry_invalid_version( await hass.config_entries.async_setup(entry.entry_id) await hass.async_block_till_done() - issue_reg = ir.async_get(hass) entry_state = entry.state assert entry_state is ConfigEntryState.SETUP_RETRY - assert issue_reg.async_get_issue(DOMAIN, "invalid_server_version") + assert issue_registry.async_get_issue(DOMAIN, "invalid_server_version") matter_client.connect.side_effect = original_connect_side_effect @@ -444,7 +442,7 @@ async def test_issue_registry_invalid_version( await hass.async_block_till_done() assert entry.state is ConfigEntryState.LOADED - assert not issue_reg.async_get_issue(DOMAIN, "invalid_server_version") + assert not issue_registry.async_get_issue(DOMAIN, "invalid_server_version") @pytest.mark.parametrize( diff --git a/tests/components/otbr/test_init.py b/tests/components/otbr/test_init.py index 7fd4ef6b016..323e8c02f8b 100644 --- a/tests/components/otbr/test_init.py +++ b/tests/components/otbr/test_init.py @@ -40,7 +40,9 @@ DATASET_NO_CHANNEL = bytes.fromhex( ) -async def test_import_dataset(hass: HomeAssistant, mock_async_zeroconf: None) -> None: +async def test_import_dataset( + hass: HomeAssistant, mock_async_zeroconf: None, issue_registry: ir.IssueRegistry +) -> None: """Test the active dataset is imported at setup.""" add_service_listener_called = asyncio.Event() @@ -53,7 +55,6 @@ async def test_import_dataset(hass: HomeAssistant, mock_async_zeroconf: None) -> mock_async_zeroconf.async_remove_service_listener = AsyncMock() mock_async_zeroconf.async_get_service_info = AsyncMock() - issue_registry = ir.async_get(hass) assert await thread.async_get_preferred_dataset(hass) is None config_entry = MockConfigEntry( @@ -123,15 +124,15 @@ async def test_import_dataset(hass: HomeAssistant, mock_async_zeroconf: None) -> async def test_import_share_radio_channel_collision( - hass: HomeAssistant, multiprotocol_addon_manager_mock + hass: HomeAssistant, + multiprotocol_addon_manager_mock, + issue_registry: ir.IssueRegistry, ) -> None: """Test the active dataset is imported at setup. This imports a dataset with different channel than ZHA when ZHA and OTBR share the radio. """ - issue_registry = ir.async_get(hass) - multiprotocol_addon_manager_mock.async_get_channel.return_value = 15 config_entry = MockConfigEntry( @@ -173,14 +174,15 @@ async def test_import_share_radio_channel_collision( @pytest.mark.parametrize("dataset", [DATASET_CH15, DATASET_NO_CHANNEL]) async def test_import_share_radio_no_channel_collision( - hass: HomeAssistant, multiprotocol_addon_manager_mock, dataset: bytes + hass: HomeAssistant, + multiprotocol_addon_manager_mock, + dataset: bytes, + issue_registry: ir.IssueRegistry, ) -> None: """Test the active dataset is imported at setup. This imports a dataset when ZHA and OTBR share the radio. """ - issue_registry = ir.async_get(hass) - multiprotocol_addon_manager_mock.async_get_channel.return_value = 15 config_entry = MockConfigEntry( @@ -221,13 +223,13 @@ async def test_import_share_radio_no_channel_collision( @pytest.mark.parametrize( "dataset", [DATASET_INSECURE_NW_KEY, DATASET_INSECURE_PASSPHRASE] ) -async def test_import_insecure_dataset(hass: HomeAssistant, dataset: bytes) -> None: +async def test_import_insecure_dataset( + hass: HomeAssistant, dataset: bytes, issue_registry: ir.IssueRegistry +) -> None: """Test the active dataset is imported at setup. This imports a dataset with insecure settings. """ - issue_registry = ir.async_get(hass) - config_entry = MockConfigEntry( data=CONFIG_ENTRY_DATA_MULTIPAN, domain=otbr.DOMAIN, diff --git a/tests/components/panel_iframe/test_init.py b/tests/components/panel_iframe/test_init.py index 0e898fd6266..a585cd523ec 100644 --- a/tests/components/panel_iframe/test_init.py +++ b/tests/components/panel_iframe/test_init.py @@ -145,9 +145,10 @@ async def test_import_config_once( assert response["result"] == [] -async def test_create_issue_when_manually_configured(hass: HomeAssistant) -> None: +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: {}}) - issue_registry = ir.async_get(hass) assert issue_registry.async_get_issue(DOMAIN, "deprecated_yaml") diff --git a/tests/components/recorder/test_init.py b/tests/components/recorder/test_init.py index d5874cefd59..006e6311109 100644 --- a/tests/components/recorder/test_init.py +++ b/tests/components/recorder/test_init.py @@ -74,8 +74,11 @@ from homeassistant.const import ( STATE_UNLOCKED, ) from homeassistant.core import Context, CoreState, Event, HomeAssistant, callback -from homeassistant.helpers import entity_registry as er, recorder as recorder_helper -from homeassistant.helpers.issue_registry import async_get as async_get_issue_registry +from homeassistant.helpers import ( + entity_registry as er, + issue_registry as ir, + recorder as recorder_helper, +) from homeassistant.setup import async_setup_component from homeassistant.util import dt as dt_util from homeassistant.util.json import json_loads @@ -1865,6 +1868,7 @@ async def test_database_lock_and_overflow( recorder_db_url: str, tmp_path: Path, caplog: pytest.LogCaptureFixture, + issue_registry: ir.IssueRegistry, ) -> None: """Test writing events during lock leading to overflow the queue causes the database to unlock.""" if recorder_db_url.startswith(("mysql://", "postgresql://")): @@ -1915,8 +1919,7 @@ async def test_database_lock_and_overflow( assert "Database queue backlog reached more than" in caplog.text assert not instance.unlock_database() - registry = async_get_issue_registry(hass) - issue = registry.async_get_issue(DOMAIN, "backup_failed_out_of_resources") + issue = issue_registry.async_get_issue(DOMAIN, "backup_failed_out_of_resources") assert issue is not None assert "start_time" in issue.translation_placeholders start_time = issue.translation_placeholders["start_time"] @@ -1931,6 +1934,7 @@ async def test_database_lock_and_overflow_checks_available_memory( recorder_db_url: str, tmp_path: Path, caplog: pytest.LogCaptureFixture, + issue_registry: ir.IssueRegistry, ) -> None: """Test writing events during lock leading to overflow the queue causes the database to unlock.""" if recorder_db_url.startswith(("mysql://", "postgresql://")): @@ -2005,8 +2009,7 @@ async def test_database_lock_and_overflow_checks_available_memory( db_events = await instance.async_add_executor_job(_get_db_events) assert len(db_events) >= 2 - registry = async_get_issue_registry(hass) - issue = registry.async_get_issue(DOMAIN, "backup_failed_out_of_resources") + issue = issue_registry.async_get_issue(DOMAIN, "backup_failed_out_of_resources") assert issue is not None assert "start_time" in issue.translation_placeholders start_time = issue.translation_placeholders["start_time"] diff --git a/tests/components/recorder/test_util.py b/tests/components/recorder/test_util.py index db411f83c91..51f3c5e559a 100644 --- a/tests/components/recorder/test_util.py +++ b/tests/components/recorder/test_util.py @@ -34,7 +34,7 @@ from homeassistant.components.recorder.util import ( ) from homeassistant.const import EVENT_HOMEASSISTANT_STOP from homeassistant.core import HomeAssistant -from homeassistant.helpers.issue_registry import async_get as async_get_issue_registry +from homeassistant.helpers import issue_registry as ir from homeassistant.util import dt as dt_util from .common import ( @@ -618,7 +618,11 @@ def test_warn_unsupported_dialect( ], ) async def test_issue_for_mariadb_with_MDEV_25020( - hass: HomeAssistant, caplog: pytest.LogCaptureFixture, mysql_version, min_version + hass: HomeAssistant, + caplog: pytest.LogCaptureFixture, + mysql_version, + min_version, + issue_registry: ir.IssueRegistry, ) -> None: """Test we create an issue for MariaDB versions affected. @@ -653,8 +657,7 @@ async def test_issue_for_mariadb_with_MDEV_25020( ) await hass.async_block_till_done() - registry = async_get_issue_registry(hass) - issue = registry.async_get_issue(DOMAIN, "maria_db_range_index_regression") + issue = issue_registry.async_get_issue(DOMAIN, "maria_db_range_index_regression") assert issue is not None assert issue.translation_placeholders == {"min_version": min_version} @@ -673,7 +676,10 @@ async def test_issue_for_mariadb_with_MDEV_25020( ], ) async def test_no_issue_for_mariadb_with_MDEV_25020( - hass: HomeAssistant, caplog: pytest.LogCaptureFixture, mysql_version + hass: HomeAssistant, + caplog: pytest.LogCaptureFixture, + mysql_version, + issue_registry: ir.IssueRegistry, ) -> None: """Test we do not create an issue for MariaDB versions not affected. @@ -708,8 +714,7 @@ async def test_no_issue_for_mariadb_with_MDEV_25020( ) await hass.async_block_till_done() - registry = async_get_issue_registry(hass) - issue = registry.async_get_issue(DOMAIN, "maria_db_range_index_regression") + issue = issue_registry.async_get_issue(DOMAIN, "maria_db_range_index_regression") assert issue is None assert database_engine is not None diff --git a/tests/components/reolink/test_init.py b/tests/components/reolink/test_init.py index 261f572bf2e..40b12b65f43 100644 --- a/tests/components/reolink/test_init.py +++ b/tests/components/reolink/test_init.py @@ -215,7 +215,7 @@ async def test_cleanup_deprecated_entities( async def test_no_repair_issue( - hass: HomeAssistant, config_entry: MockConfigEntry + hass: HomeAssistant, config_entry: MockConfigEntry, issue_registry: ir.IssueRegistry ) -> None: """Test no repairs issue is raised when http local url is used.""" await async_process_ha_core_config( @@ -225,7 +225,6 @@ async def test_no_repair_issue( assert await hass.config_entries.async_setup(config_entry.entry_id) await hass.async_block_till_done() - issue_registry = ir.async_get(hass) assert (const.DOMAIN, "https_webhook") not in issue_registry.issues assert (const.DOMAIN, "webhook_url") not in issue_registry.issues assert (const.DOMAIN, "enable_port") not in issue_registry.issues @@ -234,7 +233,7 @@ async def test_no_repair_issue( async def test_https_repair_issue( - hass: HomeAssistant, config_entry: MockConfigEntry + hass: HomeAssistant, config_entry: MockConfigEntry, issue_registry: ir.IssueRegistry ) -> None: """Test repairs issue is raised when https local url is used.""" await async_process_ha_core_config( @@ -253,12 +252,11 @@ async def test_https_repair_issue( assert await hass.config_entries.async_setup(config_entry.entry_id) await hass.async_block_till_done() - issue_registry = ir.async_get(hass) assert (const.DOMAIN, "https_webhook") in issue_registry.issues async def test_ssl_repair_issue( - hass: HomeAssistant, config_entry: MockConfigEntry + hass: HomeAssistant, config_entry: MockConfigEntry, issue_registry: ir.IssueRegistry ) -> None: """Test repairs issue is raised when global ssl certificate is used.""" assert await async_setup_component(hass, "webhook", {}) @@ -280,7 +278,6 @@ async def test_ssl_repair_issue( assert await hass.config_entries.async_setup(config_entry.entry_id) await hass.async_block_till_done() - issue_registry = ir.async_get(hass) assert (const.DOMAIN, "ssl") in issue_registry.issues @@ -290,6 +287,7 @@ async def test_port_repair_issue( config_entry: MockConfigEntry, reolink_connect: MagicMock, protocol: str, + issue_registry: ir.IssueRegistry, ) -> None: """Test repairs issue is raised when auto enable of ports fails.""" reolink_connect.set_net_port = AsyncMock(side_effect=ReolinkError("Test error")) @@ -300,12 +298,11 @@ async def test_port_repair_issue( assert await hass.config_entries.async_setup(config_entry.entry_id) await hass.async_block_till_done() - issue_registry = ir.async_get(hass) assert (const.DOMAIN, "enable_port") in issue_registry.issues async def test_webhook_repair_issue( - hass: HomeAssistant, config_entry: MockConfigEntry + hass: HomeAssistant, config_entry: MockConfigEntry, issue_registry: ir.IssueRegistry ) -> None: """Test repairs issue is raised when the webhook url is unreachable.""" with ( @@ -320,7 +317,6 @@ async def test_webhook_repair_issue( assert await hass.config_entries.async_setup(config_entry.entry_id) await hass.async_block_till_done() - issue_registry = ir.async_get(hass) assert (const.DOMAIN, "webhook_url") in issue_registry.issues @@ -328,11 +324,11 @@ async def test_firmware_repair_issue( hass: HomeAssistant, config_entry: MockConfigEntry, reolink_connect: MagicMock, + issue_registry: ir.IssueRegistry, ) -> None: """Test firmware issue is raised when too old firmware is used.""" reolink_connect.sw_version_update_required = True assert await hass.config_entries.async_setup(config_entry.entry_id) await hass.async_block_till_done() - issue_registry = ir.async_get(hass) assert (const.DOMAIN, "firmware_update") in issue_registry.issues diff --git a/tests/components/repairs/test_init.py b/tests/components/repairs/test_init.py index 75088f6c370..edb6e509841 100644 --- a/tests/components/repairs/test_init.py +++ b/tests/components/repairs/test_init.py @@ -14,14 +14,7 @@ from homeassistant.components.repairs.issue_handler import ( ) from homeassistant.const import __version__ as ha_version from homeassistant.core import HomeAssistant -from homeassistant.helpers.issue_registry import ( - IssueSeverity, - async_create_issue, - async_delete_issue, - async_ignore_issue, - create_issue, - delete_issue, -) +from homeassistant.helpers import issue_registry as ir from homeassistant.setup import async_setup_component from tests.common import mock_platform @@ -67,7 +60,7 @@ async def test_create_update_issue( ] for issue in issues: - async_create_issue( + ir.async_create_issue( hass, issue["domain"], issue["issue_id"], @@ -98,7 +91,7 @@ async def test_create_update_issue( } # Update an issue - async_create_issue( + ir.async_create_issue( hass, issues[0]["domain"], issues[0]["issue_id"], @@ -147,7 +140,7 @@ async def test_create_issue_invalid_version( } with pytest.raises(AwesomeVersionStrategyException): - async_create_issue( + ir.async_create_issue( hass, issue["domain"], issue["issue_id"], @@ -196,7 +189,7 @@ async def test_ignore_issue( ] for issue in issues: - async_create_issue( + ir.async_create_issue( hass, issue["domain"], issue["issue_id"], @@ -228,7 +221,7 @@ async def test_ignore_issue( # Ignore a non-existing issue with pytest.raises(KeyError): - async_ignore_issue(hass, issues[0]["domain"], "no_such_issue", True) + ir.async_ignore_issue(hass, issues[0]["domain"], "no_such_issue", True) await client.send_json({"id": 3, "type": "repairs/list_issues"}) msg = await client.receive_json() @@ -248,7 +241,7 @@ async def test_ignore_issue( } # Ignore an existing issue - async_ignore_issue(hass, issues[0]["domain"], issues[0]["issue_id"], True) + ir.async_ignore_issue(hass, issues[0]["domain"], issues[0]["issue_id"], True) await client.send_json({"id": 4, "type": "repairs/list_issues"}) msg = await client.receive_json() @@ -268,7 +261,7 @@ async def test_ignore_issue( } # Ignore the same issue again - async_ignore_issue(hass, issues[0]["domain"], issues[0]["issue_id"], True) + ir.async_ignore_issue(hass, issues[0]["domain"], issues[0]["issue_id"], True) await client.send_json({"id": 5, "type": "repairs/list_issues"}) msg = await client.receive_json() @@ -288,7 +281,7 @@ async def test_ignore_issue( } # Update an ignored issue - async_create_issue( + ir.async_create_issue( hass, issues[0]["domain"], issues[0]["issue_id"], @@ -315,7 +308,7 @@ async def test_ignore_issue( ) # Unignore the same issue - async_ignore_issue(hass, issues[0]["domain"], issues[0]["issue_id"], False) + ir.async_ignore_issue(hass, issues[0]["domain"], issues[0]["issue_id"], False) await client.send_json({"id": 7, "type": "repairs/list_issues"}) msg = await client.receive_json() @@ -362,7 +355,7 @@ async def test_delete_issue( ] for issue in issues: - async_create_issue( + ir.async_create_issue( hass, issue["domain"], issue["issue_id"], @@ -393,7 +386,7 @@ async def test_delete_issue( } # Delete a non-existing issue - async_delete_issue(hass, issues[0]["domain"], "no_such_issue") + ir.async_delete_issue(hass, issues[0]["domain"], "no_such_issue") await client.send_json({"id": 2, "type": "repairs/list_issues"}) msg = await client.receive_json() @@ -413,7 +406,7 @@ async def test_delete_issue( } # Delete an existing issue - async_delete_issue(hass, issues[0]["domain"], issues[0]["issue_id"]) + ir.async_delete_issue(hass, issues[0]["domain"], issues[0]["issue_id"]) await client.send_json({"id": 3, "type": "repairs/list_issues"}) msg = await client.receive_json() @@ -422,7 +415,7 @@ async def test_delete_issue( assert msg["result"] == {"issues": []} # Delete the same issue again - async_delete_issue(hass, issues[0]["domain"], issues[0]["issue_id"]) + ir.async_delete_issue(hass, issues[0]["domain"], issues[0]["issue_id"]) await client.send_json({"id": 4, "type": "repairs/list_issues"}) msg = await client.receive_json() @@ -434,7 +427,7 @@ async def test_delete_issue( freezer.move_to("2022-07-19 08:53:05") for issue in issues: - async_create_issue( + ir.async_create_issue( hass, issue["domain"], issue["issue_id"], @@ -508,7 +501,7 @@ async def test_sync_methods( assert msg["result"] == {"issues": []} def _create_issue() -> None: - create_issue( + ir.create_issue( hass, "fake_integration", "sync_issue", @@ -516,7 +509,7 @@ async def test_sync_methods( is_fixable=True, is_persistent=False, learn_more_url="https://theuselessweb.com", - severity=IssueSeverity.ERROR, + severity=ir.IssueSeverity.ERROR, translation_key="abc_123", translation_placeholders={"abc": "123"}, ) @@ -546,7 +539,7 @@ async def test_sync_methods( } await hass.async_add_executor_job( - delete_issue, hass, "fake_integration", "sync_issue" + ir.delete_issue, hass, "fake_integration", "sync_issue" ) await client.send_json({"id": 3, "type": "repairs/list_issues"}) msg = await client.receive_json() diff --git a/tests/components/ring/test_init.py b/tests/components/ring/test_init.py index 664f8ff1973..ff9229c748f 100644 --- a/tests/components/ring/test_init.py +++ b/tests/components/ring/test_init.py @@ -14,8 +14,7 @@ from homeassistant.components.ring import DOMAIN from homeassistant.config_entries import SOURCE_REAUTH, ConfigEntryState from homeassistant.const import CONF_USERNAME from homeassistant.core import HomeAssistant -from homeassistant.helpers import entity_registry as er -from homeassistant.helpers.issue_registry import IssueRegistry +from homeassistant.helpers import entity_registry as er, issue_registry as ir from homeassistant.setup import async_setup_component from homeassistant.util import dt as dt_util @@ -247,7 +246,7 @@ async def test_error_on_device_update( async def test_issue_deprecated_service_ring_update( hass: HomeAssistant, - issue_registry: IssueRegistry, + issue_registry: ir.IssueRegistry, caplog: pytest.LogCaptureFixture, requests_mock: requests_mock.Mocker, mock_config_entry: MockConfigEntry, diff --git a/tests/components/seventeentrack/test_sensor.py b/tests/components/seventeentrack/test_sensor.py index 31fc5deec24..75cc6435073 100644 --- a/tests/components/seventeentrack/test_sensor.py +++ b/tests/components/seventeentrack/test_sensor.py @@ -8,7 +8,7 @@ from freezegun.api import FrozenDateTimeFactory from py17track.errors import SeventeenTrackError from homeassistant.core import HomeAssistant -from homeassistant.helpers.issue_registry import IssueRegistry +from homeassistant.helpers import issue_registry as ir from homeassistant.setup import async_setup_component from . import goto_future, init_integration @@ -311,7 +311,7 @@ async def test_non_valid_platform_config( async def test_full_valid_platform_config( hass: HomeAssistant, mock_seventeentrack: AsyncMock, - issue_registry: IssueRegistry, + issue_registry: ir.IssueRegistry, ) -> None: """Ensure everything starts correctly.""" assert await async_setup_component(hass, "sensor", VALID_PLATFORM_CONFIG_FULL) diff --git a/tests/components/shelly/test_climate.py b/tests/components/shelly/test_climate.py index a70cdef3fb1..241c6a00724 100644 --- a/tests/components/shelly/test_climate.py +++ b/tests/components/shelly/test_climate.py @@ -33,9 +33,9 @@ from homeassistant.const import ( ) from homeassistant.core import HomeAssistant, State from homeassistant.exceptions import HomeAssistantError, ServiceValidationError +from homeassistant.helpers import issue_registry as ir from homeassistant.helpers.device_registry import DeviceRegistry from homeassistant.helpers.entity_registry import EntityRegistry -from homeassistant.helpers.issue_registry import IssueRegistry from homeassistant.util.unit_system import US_CUSTOMARY_SYSTEM from . import MOCK_MAC, init_integration, register_device, register_entity @@ -560,7 +560,7 @@ async def test_device_not_calibrated( hass: HomeAssistant, mock_block_device: Mock, monkeypatch: pytest.MonkeyPatch, - issue_registry: IssueRegistry, + issue_registry: ir.IssueRegistry, ) -> None: """Test to create an issue when the device is not calibrated.""" await init_integration(hass, 1, sleep_period=1000, model=MODEL_VALVE) diff --git a/tests/components/shelly/test_switch.py b/tests/components/shelly/test_switch.py index e6e8bbd0f71..3bcb262bee1 100644 --- a/tests/components/shelly/test_switch.py +++ b/tests/components/shelly/test_switch.py @@ -479,6 +479,7 @@ async def test_create_issue_valve_switch( mock_block_device: Mock, entity_registry_enabled_by_default: None, monkeypatch: pytest.MonkeyPatch, + issue_registry: ir.IssueRegistry, ) -> None: """Test we create an issue when an automation or script is using a deprecated entity.""" monkeypatch.setitem(mock_block_device.status, "cloud", {"connected": False}) @@ -521,7 +522,6 @@ async def test_create_issue_valve_switch( assert automations_with_entity(hass, entity_id)[0] == "automation.test" assert scripts_with_entity(hass, entity_id)[0] == "script.test" - issue_registry: ir.IssueRegistry = ir.async_get(hass) assert issue_registry.async_get_issue(DOMAIN, "deprecated_valve_switch") assert issue_registry.async_get_issue( diff --git a/tests/components/sonos/test_repairs.py b/tests/components/sonos/test_repairs.py index 2fa951c6a79..487020e0b12 100644 --- a/tests/components/sonos/test_repairs.py +++ b/tests/components/sonos/test_repairs.py @@ -10,7 +10,7 @@ from homeassistant.components.sonos.const import ( SUB_FAIL_ISSUE_ID, ) from homeassistant.core import HomeAssistant -from homeassistant.helpers.issue_registry import async_get as async_get_issue_registry +from homeassistant.helpers import issue_registry as ir from homeassistant.util import dt as dt_util from .conftest import SonosMockEvent, SonosMockSubscribe @@ -19,11 +19,13 @@ from tests.common import MockConfigEntry, async_fire_time_changed async def test_subscription_repair_issues( - hass: HomeAssistant, config_entry: MockConfigEntry, soco: SoCo, zgs_discovery + hass: HomeAssistant, + config_entry: MockConfigEntry, + soco: SoCo, + zgs_discovery, + issue_registry: ir.IssueRegistry, ) -> None: """Test repair issues handling for failed subscriptions.""" - issue_registry = async_get_issue_registry(hass) - subscription: SonosMockSubscribe = soco.zoneGroupTopology.subscribe.return_value subscription.event_listener = Mock(address=("192.168.4.2", 1400)) diff --git a/tests/components/sql/test_sensor.py b/tests/components/sql/test_sensor.py index 14442aa5181..b219ad47f3a 100644 --- a/tests/components/sql/test_sensor.py +++ b/tests/components/sql/test_sensor.py @@ -424,7 +424,10 @@ async def test_binary_data_from_yaml_setup( async def test_issue_when_using_old_query( - recorder_mock: Recorder, hass: HomeAssistant, caplog: pytest.LogCaptureFixture + recorder_mock: Recorder, + hass: HomeAssistant, + caplog: pytest.LogCaptureFixture, + issue_registry: ir.IssueRegistry, ) -> None: """Test we create an issue for an old query that will do a full table scan.""" @@ -433,7 +436,6 @@ async def test_issue_when_using_old_query( assert "Query contains entity_id but does not reference states_meta" in caplog.text assert not hass.states.async_all() - issue_registry = ir.async_get(hass) config = YAML_CONFIG_FULL_TABLE_SCAN["sql"] @@ -457,6 +459,7 @@ async def test_issue_when_using_old_query_without_unique_id( hass: HomeAssistant, caplog: pytest.LogCaptureFixture, yaml_config: dict[str, Any], + issue_registry: ir.IssueRegistry, ) -> None: """Test we create an issue for an old query that will do a full table scan.""" @@ -465,7 +468,6 @@ async def test_issue_when_using_old_query_without_unique_id( assert "Query contains entity_id but does not reference states_meta" in caplog.text assert not hass.states.async_all() - issue_registry = ir.async_get(hass) config = yaml_config["sql"] query = config[CONF_QUERY] diff --git a/tests/components/tasmota/test_discovery.py b/tests/components/tasmota/test_discovery.py index 8dc2c22f1c7..5a7635c72b2 100644 --- a/tests/components/tasmota/test_discovery.py +++ b/tests/components/tasmota/test_discovery.py @@ -578,6 +578,7 @@ async def test_same_topic( device_reg, entity_reg, setup_tasmota, + issue_registry: ir.IssueRegistry, ) -> None: """Test detecting devices with same topic.""" configs = [ @@ -624,7 +625,6 @@ async def test_same_topic( # Verify a repairs issue was created issue_id = "topic_duplicated_tasmota_49A3BC/cmnd/" - issue_registry = ir.async_get(hass) issue = issue_registry.async_get_issue("tasmota", issue_id) assert issue.data["mac"] == " ".join(config["mac"] for config in configs[0:2]) @@ -702,6 +702,7 @@ async def test_topic_no_prefix( device_reg, entity_reg, setup_tasmota, + issue_registry: ir.IssueRegistry, ) -> None: """Test detecting devices with same topic.""" config = copy.deepcopy(DEFAULT_CONFIG) @@ -734,7 +735,6 @@ async def test_topic_no_prefix( # Verify a repairs issue was created issue_id = "topic_no_prefix_00000049A3BC" - issue_registry = ir.async_get(hass) assert ("tasmota", issue_id) in issue_registry.issues # Rediscover device with fixed config @@ -753,5 +753,4 @@ async def test_topic_no_prefix( assert len(er.async_entries_for_device(entity_reg, device_entry.id, True)) == 1 # Verify the repairs issue has been removed - issue_registry = ir.async_get(hass) assert ("tasmota", issue_id) not in issue_registry.issues diff --git a/tests/components/tessie/test_lock.py b/tests/components/tessie/test_lock.py index 0371b592f07..cfb6168b399 100644 --- a/tests/components/tessie/test_lock.py +++ b/tests/components/tessie/test_lock.py @@ -14,8 +14,7 @@ from homeassistant.components.lock import ( from homeassistant.const import ATTR_ENTITY_ID, STATE_LOCKED, STATE_UNLOCKED, Platform from homeassistant.core import HomeAssistant from homeassistant.exceptions import ServiceValidationError -from homeassistant.helpers import entity_registry as er -from homeassistant.helpers.issue_registry import async_get as async_get_issue_registry +from homeassistant.helpers import entity_registry as er, issue_registry as ir from .common import DOMAIN, assert_entities, setup_platform @@ -86,12 +85,11 @@ async def test_locks( async def test_speed_limit_lock( - hass: HomeAssistant, entity_registry: er.EntityRegistry + hass: HomeAssistant, + entity_registry: er.EntityRegistry, + issue_registry: ir.IssueRegistry, ) -> None: """Tests that the deprecated speed limit lock entity is correct.""" - - issue_registry = async_get_issue_registry(hass) - # Create the deprecated speed limit lock entity entity = entity_registry.async_get_or_create( LOCK_DOMAIN, diff --git a/tests/components/time_date/test_sensor.py b/tests/components/time_date/test_sensor.py index bbdb770c868..cbbf9a25d5c 100644 --- a/tests/components/time_date/test_sensor.py +++ b/tests/components/time_date/test_sensor.py @@ -304,6 +304,7 @@ async def test_deprecation_warning( display_options: list[str], expected_warnings: list[str], expected_issues: list[str], + issue_registry: ir.IssueRegistry, ) -> None: """Test deprecation warning for swatch beat.""" config = { @@ -321,7 +322,6 @@ async def test_deprecation_warning( for expected_warning in expected_warnings: assert any(expected_warning in warning.message for warning in warnings) - issue_registry = ir.async_get(hass) assert len(issue_registry.issues) == len(expected_issues) for expected_issue in expected_issues: assert (DOMAIN, expected_issue) in issue_registry.issues diff --git a/tests/components/zha/test_repairs.py b/tests/components/zha/test_repairs.py index 5b57ec7fcc2..abb9dc6dc9e 100644 --- a/tests/components/zha/test_repairs.py +++ b/tests/components/zha/test_repairs.py @@ -134,6 +134,7 @@ async def test_multipan_firmware_repair( expected_learn_more_url: str, config_entry: MockConfigEntry, mock_zigpy_connect: ControllerApplication, + issue_registry: ir.IssueRegistry, ) -> None: """Test creating a repair when multi-PAN firmware is installed and probed.""" @@ -162,8 +163,6 @@ async def test_multipan_firmware_repair( await hass.config_entries.async_unload(config_entry.entry_id) - issue_registry = ir.async_get(hass) - issue = issue_registry.async_get_issue( domain=DOMAIN, issue_id=ISSUE_WRONG_SILABS_FIRMWARE_INSTALLED, @@ -186,7 +185,7 @@ async def test_multipan_firmware_repair( async def test_multipan_firmware_no_repair_on_probe_failure( - hass: HomeAssistant, config_entry: MockConfigEntry + hass: HomeAssistant, config_entry: MockConfigEntry, issue_registry: ir.IssueRegistry ) -> None: """Test that a repair is not created when multi-PAN firmware cannot be probed.""" @@ -212,7 +211,6 @@ async def test_multipan_firmware_no_repair_on_probe_failure( await hass.config_entries.async_unload(config_entry.entry_id) # No repair is created - issue_registry = ir.async_get(hass) issue = issue_registry.async_get_issue( domain=DOMAIN, issue_id=ISSUE_WRONG_SILABS_FIRMWARE_INSTALLED, @@ -224,6 +222,7 @@ async def test_multipan_firmware_retry_on_probe_ezsp( hass: HomeAssistant, config_entry: MockConfigEntry, mock_zigpy_connect: ControllerApplication, + issue_registry: ir.IssueRegistry, ) -> None: """Test that ZHA is reloaded when EZSP firmware is probed.""" @@ -250,7 +249,6 @@ async def test_multipan_firmware_retry_on_probe_ezsp( await hass.config_entries.async_unload(config_entry.entry_id) # No repair is created - issue_registry = ir.async_get(hass) issue = issue_registry.async_get_issue( domain=DOMAIN, issue_id=ISSUE_WRONG_SILABS_FIRMWARE_INSTALLED, @@ -299,6 +297,7 @@ async def test_inconsistent_settings_keep_new( config_entry: MockConfigEntry, mock_zigpy_connect: ControllerApplication, network_backup: zigpy.backups.NetworkBackup, + issue_registry: ir.IssueRegistry, ) -> None: """Test inconsistent ZHA network settings: keep new settings.""" @@ -326,8 +325,6 @@ async def test_inconsistent_settings_keep_new( await hass.config_entries.async_unload(config_entry.entry_id) - issue_registry = ir.async_get(hass) - issue = issue_registry.async_get_issue( domain=DOMAIN, issue_id=ISSUE_INCONSISTENT_NETWORK_SETTINGS, @@ -379,6 +376,7 @@ async def test_inconsistent_settings_restore_old( config_entry: MockConfigEntry, mock_zigpy_connect: ControllerApplication, network_backup: zigpy.backups.NetworkBackup, + issue_registry: ir.IssueRegistry, ) -> None: """Test inconsistent ZHA network settings: restore last backup.""" @@ -406,8 +404,6 @@ async def test_inconsistent_settings_restore_old( await hass.config_entries.async_unload(config_entry.entry_id) - issue_registry = ir.async_get(hass) - issue = issue_registry.async_get_issue( domain=DOMAIN, issue_id=ISSUE_INCONSISTENT_NETWORK_SETTINGS, diff --git a/tests/components/zwave_js/test_init.py b/tests/components/zwave_js/test_init.py index 66c2c05e530..15e3e89312e 100644 --- a/tests/components/zwave_js/test_init.py +++ b/tests/components/zwave_js/test_init.py @@ -748,7 +748,9 @@ async def test_update_addon( assert update_addon.call_count == update_calls -async def test_issue_registry(hass: HomeAssistant, client, version_state) -> None: +async def test_issue_registry( + hass: HomeAssistant, client, version_state, issue_registry: ir.IssueRegistry +) -> None: """Test issue registry.""" device = "/test" network_key = "abc123" @@ -774,8 +776,7 @@ async def test_issue_registry(hass: HomeAssistant, client, version_state) -> Non assert entry.state is ConfigEntryState.SETUP_RETRY - issue_reg = ir.async_get(hass) - assert issue_reg.async_get_issue(DOMAIN, "invalid_server_version") + assert issue_registry.async_get_issue(DOMAIN, "invalid_server_version") async def connect(): await asyncio.sleep(0) @@ -786,7 +787,7 @@ async def test_issue_registry(hass: HomeAssistant, client, version_state) -> Non await hass.config_entries.async_reload(entry.entry_id) await hass.async_block_till_done() assert entry.state is ConfigEntryState.LOADED - assert not issue_reg.async_get_issue(DOMAIN, "invalid_server_version") + assert not issue_registry.async_get_issue(DOMAIN, "invalid_server_version") @pytest.mark.parametrize(