From d1578aacf20a67036823a1b9094b64a09a38b856 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Thu, 26 May 2022 21:41:17 +0200 Subject: [PATCH] Improve raspberry_pi tests (#72557) --- .../components/raspberry_pi/test_hardware.py | 54 +++++++++++++++---- 1 file changed, 43 insertions(+), 11 deletions(-) diff --git a/tests/components/raspberry_pi/test_hardware.py b/tests/components/raspberry_pi/test_hardware.py index 748972c8d60..a4e938079d3 100644 --- a/tests/components/raspberry_pi/test_hardware.py +++ b/tests/components/raspberry_pi/test_hardware.py @@ -1,25 +1,41 @@ """Test the Raspberry Pi hardware platform.""" +from unittest.mock import patch + import pytest -from homeassistant.components.hassio import DATA_OS_INFO from homeassistant.components.raspberry_pi.const import DOMAIN from homeassistant.core import HomeAssistant -from homeassistant.setup import async_setup_component -from tests.common import MockModule, mock_integration +from tests.common import MockConfigEntry, MockModule, mock_integration async def test_hardware_info(hass: HomeAssistant, hass_ws_client) -> None: """Test we can get the board info.""" mock_integration(hass, MockModule("hassio")) - hass.data[DATA_OS_INFO] = {"board": "rpi"} - assert await async_setup_component(hass, DOMAIN, {}) + # Setup the config entry + config_entry = MockConfigEntry( + data={}, + domain=DOMAIN, + options={}, + title="Raspberry Pi", + ) + config_entry.add_to_hass(hass) + with patch( + "homeassistant.components.raspberry_pi.get_os_info", + return_value={"board": "rpi"}, + ): + assert await hass.config_entries.async_setup(config_entry.entry_id) + await hass.async_block_till_done() client = await hass_ws_client(hass) - await client.send_json({"id": 1, "type": "hardware/info"}) - msg = await client.receive_json() + with patch( + "homeassistant.components.raspberry_pi.hardware.get_os_info", + return_value={"board": "rpi"}, + ): + await client.send_json({"id": 1, "type": "hardware/info"}) + msg = await client.receive_json() assert msg["id"] == 1 assert msg["success"] @@ -43,14 +59,30 @@ async def test_hardware_info(hass: HomeAssistant, hass_ws_client) -> None: async def test_hardware_info_fail(hass: HomeAssistant, hass_ws_client, os_info) -> None: """Test async_info raises if os_info is not as expected.""" mock_integration(hass, MockModule("hassio")) - hass.data[DATA_OS_INFO] = os_info - assert await async_setup_component(hass, DOMAIN, {}) + # Setup the config entry + config_entry = MockConfigEntry( + data={}, + domain=DOMAIN, + options={}, + title="Raspberry Pi", + ) + config_entry.add_to_hass(hass) + with patch( + "homeassistant.components.raspberry_pi.get_os_info", + return_value={"board": "rpi"}, + ): + assert await hass.config_entries.async_setup(config_entry.entry_id) + await hass.async_block_till_done() client = await hass_ws_client(hass) - await client.send_json({"id": 1, "type": "hardware/info"}) - msg = await client.receive_json() + with patch( + "homeassistant.components.raspberry_pi.hardware.get_os_info", + return_value=os_info, + ): + await client.send_json({"id": 1, "type": "hardware/info"}) + msg = await client.receive_json() assert msg["id"] == 1 assert msg["success"]