From 6f567afc0e295170a5bac7a60d09f31f3d68c7e5 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Mon, 28 Mar 2022 10:33:43 +0200 Subject: [PATCH] Mock out all default onboarding integrations in test (#68776) Co-authored-by: Erik Montnemery --- tests/components/onboarding/test_views.py | 64 +++++++++++------------ 1 file changed, 31 insertions(+), 33 deletions(-) diff --git a/tests/components/onboarding/test_views.py b/tests/components/onboarding/test_views.py index 3044f53cc38..025459e73b7 100644 --- a/tests/components/onboarding/test_views.py +++ b/tests/components/onboarding/test_views.py @@ -14,12 +14,6 @@ from homeassistant.setup import async_setup_component from . import mock_storage from tests.common import CLIENT_ID, CLIENT_REDIRECT_URI, register_auth_provider -from tests.components.met.conftest import mock_weather # noqa: F401 - - -@pytest.fixture(autouse=True) -def always_mock_weather(mock_weather): # noqa: F811 - """Mock the Met weather provider.""" @pytest.fixture(autouse=True) @@ -90,6 +84,21 @@ async def mock_supervisor_fixture(hass, aioclient_mock): yield +@pytest.fixture +def mock_default_integrations(): + """Mock the default integrations set up during onboarding.""" + with patch( + "homeassistant.components.rpi_power.config_flow.new_under_voltage" + ), patch( + "homeassistant.components.rpi_power.binary_sensor.new_under_voltage" + ), patch( + "homeassistant.components.met.async_setup_entry", return_value=True + ), patch( + "homeassistant.components.radio_browser.async_setup_entry", return_value=True + ): + yield + + async def test_onboarding_progress(hass, hass_storage, hass_client_no_auth): """Test fetching progress.""" mock_storage(hass_storage, {"done": ["hello"]}) @@ -364,7 +373,9 @@ async def test_onboarding_integration_requires_auth( assert resp.status == 401 -async def test_onboarding_core_sets_up_met(hass, hass_storage, hass_client): +async def test_onboarding_core_sets_up_met( + hass, hass_storage, hass_client, mock_default_integrations +): """Test finishing the core step.""" mock_storage(hass_storage, {"done": [const.STEP_USER]}) @@ -372,19 +383,17 @@ async def test_onboarding_core_sets_up_met(hass, hass_storage, hass_client): await hass.async_block_till_done() client = await hass_client() - with patch( - "homeassistant.components.met.async_setup_entry", return_value=True - ) as mock_setup: - resp = await client.post("/api/onboarding/core_config") + resp = await client.post("/api/onboarding/core_config") assert resp.status == 200 await hass.async_block_till_done() assert len(hass.config_entries.async_entries("met")) == 1 - assert len(mock_setup.mock_calls) == 1 -async def test_onboarding_core_sets_up_radio_browser(hass, hass_storage, hass_client): +async def test_onboarding_core_sets_up_radio_browser( + hass, hass_storage, hass_client, mock_default_integrations +): """Test finishing the core step set up the radio browser.""" mock_storage(hass_storage, {"done": [const.STEP_USER]}) @@ -392,21 +401,16 @@ async def test_onboarding_core_sets_up_radio_browser(hass, hass_storage, hass_cl await hass.async_block_till_done() client = await hass_client() - - with patch( - "homeassistant.components.radio_browser.async_setup_entry", return_value=True - ) as mock_setup: - resp = await client.post("/api/onboarding/core_config") + resp = await client.post("/api/onboarding/core_config") assert resp.status == 200 await hass.async_block_till_done() assert len(hass.config_entries.async_entries("radio_browser")) == 1 - assert len(mock_setup.mock_calls) == 1 async def test_onboarding_core_sets_up_rpi_power( - hass, hass_storage, hass_client, aioclient_mock, rpi + hass, hass_storage, hass_client, aioclient_mock, rpi, mock_default_integrations ): """Test that the core step sets up rpi_power on RPi.""" mock_storage(hass_storage, {"done": [const.STEP_USER]}) @@ -416,21 +420,18 @@ async def test_onboarding_core_sets_up_rpi_power( client = await hass_client() - with patch( - "homeassistant.components.rpi_power.config_flow.new_under_voltage" - ), patch("homeassistant.components.rpi_power.binary_sensor.new_under_voltage"): - resp = await client.post("/api/onboarding/core_config") + resp = await client.post("/api/onboarding/core_config") - assert resp.status == 200 + assert resp.status == 200 - await hass.async_block_till_done() + await hass.async_block_till_done() rpi_power_state = hass.states.get("binary_sensor.rpi_power_status") assert rpi_power_state async def test_onboarding_core_no_rpi_power( - hass, hass_storage, hass_client, aioclient_mock, no_rpi + hass, hass_storage, hass_client, aioclient_mock, no_rpi, mock_default_integrations ): """Test that the core step do not set up rpi_power on non RPi.""" mock_storage(hass_storage, {"done": [const.STEP_USER]}) @@ -440,14 +441,11 @@ async def test_onboarding_core_no_rpi_power( client = await hass_client() - with patch( - "homeassistant.components.rpi_power.config_flow.new_under_voltage" - ), patch("homeassistant.components.rpi_power.binary_sensor.new_under_voltage"): - resp = await client.post("/api/onboarding/core_config") + resp = await client.post("/api/onboarding/core_config") - assert resp.status == 200 + assert resp.status == 200 - await hass.async_block_till_done() + await hass.async_block_till_done() rpi_power_state = hass.states.get("binary_sensor.rpi_power_status") assert not rpi_power_state