mirror of
https://github.com/home-assistant/core.git
synced 2025-04-24 09:17:53 +00:00
Refactor and cleanup zwave_js fixtures to share them (#124485)
Refactor and cleanup zwave_js fixtures to use
This commit is contained in:
parent
0bd9386df2
commit
44b6bca89a
@ -202,31 +202,53 @@ def discovery_info_fixture() -> Any:
|
||||
return mock_discovery_info()
|
||||
|
||||
|
||||
@pytest.fixture(name="discovery_info_side_effect")
|
||||
def discovery_info_side_effect_fixture() -> Any | None:
|
||||
"""Return the discovery info from the supervisor."""
|
||||
return None
|
||||
|
||||
|
||||
@pytest.fixture(name="get_addon_discovery_info")
|
||||
def get_addon_discovery_info_fixture(discovery_info: Any) -> Generator[AsyncMock]:
|
||||
def get_addon_discovery_info_fixture(
|
||||
discovery_info: dict[str, Any], discovery_info_side_effect: Any | None
|
||||
) -> Generator[AsyncMock]:
|
||||
"""Mock get add-on discovery info."""
|
||||
# pylint: disable-next=import-outside-toplevel
|
||||
from .hassio.common import mock_get_addon_discovery_info
|
||||
|
||||
yield from mock_get_addon_discovery_info(discovery_info)
|
||||
yield from mock_get_addon_discovery_info(discovery_info, discovery_info_side_effect)
|
||||
|
||||
|
||||
@pytest.fixture(name="addon_store_info_side_effect")
|
||||
def addon_store_info_side_effect_fixture() -> Any | None:
|
||||
"""Return the add-on store info side effect."""
|
||||
return None
|
||||
|
||||
|
||||
@pytest.fixture(name="addon_store_info")
|
||||
def addon_store_info_fixture() -> Generator[AsyncMock]:
|
||||
def addon_store_info_fixture(
|
||||
addon_store_info_side_effect: Any | None,
|
||||
) -> Generator[AsyncMock]:
|
||||
"""Mock Supervisor add-on store info."""
|
||||
# pylint: disable-next=import-outside-toplevel
|
||||
from .hassio.common import mock_addon_store_info
|
||||
|
||||
yield from mock_addon_store_info()
|
||||
yield from mock_addon_store_info(addon_store_info_side_effect)
|
||||
|
||||
|
||||
@pytest.fixture(name="addon_info_side_effect")
|
||||
def addon_info_side_effect_fixture() -> Any | None:
|
||||
"""Return the add-on info side effect."""
|
||||
return None
|
||||
|
||||
|
||||
@pytest.fixture(name="addon_info")
|
||||
def addon_info_fixture() -> Generator[AsyncMock]:
|
||||
def addon_info_fixture(addon_info_side_effect: Any | None) -> Generator[AsyncMock]:
|
||||
"""Mock Supervisor add-on info."""
|
||||
# pylint: disable-next=import-outside-toplevel
|
||||
from .hassio.common import mock_addon_info
|
||||
|
||||
yield from mock_addon_info()
|
||||
yield from mock_addon_info(addon_info_side_effect)
|
||||
|
||||
|
||||
@pytest.fixture(name="addon_not_installed")
|
||||
@ -262,33 +284,64 @@ def addon_running_fixture(
|
||||
return mock_addon_running(addon_store_info, addon_info)
|
||||
|
||||
|
||||
@pytest.fixture(name="install_addon_side_effect")
|
||||
def install_addon_side_effect_fixture(
|
||||
addon_store_info: AsyncMock, addon_info: AsyncMock
|
||||
) -> Any | None:
|
||||
"""Return the install add-on side effect."""
|
||||
|
||||
# pylint: disable-next=import-outside-toplevel
|
||||
from .hassio.common import mock_install_addon_side_effect
|
||||
|
||||
return mock_install_addon_side_effect(addon_store_info, addon_info)
|
||||
|
||||
|
||||
@pytest.fixture(name="install_addon")
|
||||
def install_addon_fixture(
|
||||
addon_store_info: AsyncMock, addon_info: AsyncMock
|
||||
install_addon_side_effect: Any | None,
|
||||
) -> Generator[AsyncMock]:
|
||||
"""Mock install add-on."""
|
||||
# pylint: disable-next=import-outside-toplevel
|
||||
from .hassio.common import mock_install_addon
|
||||
|
||||
yield from mock_install_addon(addon_store_info, addon_info)
|
||||
yield from mock_install_addon(install_addon_side_effect)
|
||||
|
||||
|
||||
@pytest.fixture(name="start_addon_side_effect")
|
||||
def start_addon_side_effect_fixture(
|
||||
addon_store_info: AsyncMock, addon_info: AsyncMock
|
||||
) -> Any | None:
|
||||
"""Return the start add-on options side effect."""
|
||||
# pylint: disable-next=import-outside-toplevel
|
||||
from .hassio.common import mock_start_addon_side_effect
|
||||
|
||||
return mock_start_addon_side_effect(addon_store_info, addon_info)
|
||||
|
||||
|
||||
@pytest.fixture(name="start_addon")
|
||||
def start_addon_fixture() -> Generator[AsyncMock]:
|
||||
def start_addon_fixture(start_addon_side_effect: Any | None) -> Generator[AsyncMock]:
|
||||
"""Mock start add-on."""
|
||||
# pylint: disable-next=import-outside-toplevel
|
||||
from .hassio.common import mock_start_addon
|
||||
|
||||
yield from mock_start_addon()
|
||||
yield from mock_start_addon(start_addon_side_effect)
|
||||
|
||||
|
||||
@pytest.fixture(name="restart_addon_side_effect")
|
||||
def restart_addon_side_effect_fixture() -> Any | None:
|
||||
"""Return the restart add-on options side effect."""
|
||||
return None
|
||||
|
||||
|
||||
@pytest.fixture(name="restart_addon")
|
||||
def restart_addon_fixture() -> Generator[AsyncMock]:
|
||||
def restart_addon_fixture(
|
||||
restart_addon_side_effect: Any | None,
|
||||
) -> Generator[AsyncMock]:
|
||||
"""Mock restart add-on."""
|
||||
# pylint: disable-next=import-outside-toplevel
|
||||
from .hassio.common import mock_restart_addon
|
||||
|
||||
yield from mock_restart_addon()
|
||||
yield from mock_restart_addon(restart_addon_side_effect)
|
||||
|
||||
|
||||
@pytest.fixture(name="stop_addon")
|
||||
@ -300,13 +353,35 @@ def stop_addon_fixture() -> Generator[AsyncMock]:
|
||||
yield from mock_stop_addon()
|
||||
|
||||
|
||||
@pytest.fixture(name="addon_options")
|
||||
def addon_options_fixture(addon_info: AsyncMock) -> dict[str, Any]:
|
||||
"""Mock add-on options."""
|
||||
# pylint: disable-next=import-outside-toplevel
|
||||
from .hassio.common import mock_addon_options
|
||||
|
||||
return mock_addon_options(addon_info)
|
||||
|
||||
|
||||
@pytest.fixture(name="set_addon_options_side_effect")
|
||||
def set_addon_options_side_effect_fixture(
|
||||
addon_options: dict[str, Any],
|
||||
) -> Any | None:
|
||||
"""Return the set add-on options side effect."""
|
||||
# pylint: disable-next=import-outside-toplevel
|
||||
from .hassio.common import mock_set_addon_options_side_effect
|
||||
|
||||
return mock_set_addon_options_side_effect(addon_options)
|
||||
|
||||
|
||||
@pytest.fixture(name="set_addon_options")
|
||||
def set_addon_options_fixture() -> Generator[AsyncMock]:
|
||||
def set_addon_options_fixture(
|
||||
set_addon_options_side_effect: Any | None,
|
||||
) -> Generator[AsyncMock]:
|
||||
"""Mock set add-on options."""
|
||||
# pylint: disable-next=import-outside-toplevel
|
||||
from .hassio.common import mock_set_addon_options
|
||||
|
||||
yield from mock_set_addon_options()
|
||||
yield from mock_set_addon_options(set_addon_options_side_effect)
|
||||
|
||||
|
||||
@pytest.fixture(name="uninstall_addon")
|
||||
|
@ -23,19 +23,25 @@ def mock_discovery_info() -> Any:
|
||||
return DEFAULT
|
||||
|
||||
|
||||
def mock_get_addon_discovery_info(discovery_info: Any) -> Generator[AsyncMock]:
|
||||
def mock_get_addon_discovery_info(
|
||||
discovery_info: dict[str, Any], discovery_info_side_effect: Any | None
|
||||
) -> Generator[AsyncMock]:
|
||||
"""Mock get add-on discovery info."""
|
||||
with patch(
|
||||
"homeassistant.components.hassio.addon_manager.async_get_addon_discovery_info",
|
||||
side_effect=discovery_info_side_effect,
|
||||
return_value=discovery_info,
|
||||
) as get_addon_discovery_info:
|
||||
yield get_addon_discovery_info
|
||||
|
||||
|
||||
def mock_addon_store_info() -> Generator[AsyncMock]:
|
||||
def mock_addon_store_info(
|
||||
addon_store_info_side_effect: Any | None,
|
||||
) -> Generator[AsyncMock]:
|
||||
"""Mock Supervisor add-on store info."""
|
||||
with patch(
|
||||
"homeassistant.components.hassio.addon_manager.async_get_addon_store_info"
|
||||
"homeassistant.components.hassio.addon_manager.async_get_addon_store_info",
|
||||
side_effect=addon_store_info_side_effect,
|
||||
) as addon_store_info:
|
||||
addon_store_info.return_value = {
|
||||
"available": False,
|
||||
@ -46,10 +52,11 @@ def mock_addon_store_info() -> Generator[AsyncMock]:
|
||||
yield addon_store_info
|
||||
|
||||
|
||||
def mock_addon_info() -> Generator[AsyncMock]:
|
||||
def mock_addon_info(addon_info_side_effect: Any | None) -> Generator[AsyncMock]:
|
||||
"""Mock Supervisor add-on info."""
|
||||
with patch(
|
||||
"homeassistant.components.hassio.addon_manager.async_get_addon_info",
|
||||
side_effect=addon_info_side_effect,
|
||||
) as addon_info:
|
||||
addon_info.return_value = {
|
||||
"available": False,
|
||||
@ -96,18 +103,18 @@ def mock_addon_running(addon_store_info: AsyncMock, addon_info: AsyncMock) -> As
|
||||
"version": "1.0.0",
|
||||
}
|
||||
addon_info.return_value["available"] = True
|
||||
addon_info.return_value["hostname"] = "core-mosquitto"
|
||||
addon_info.return_value["hostname"] = "core-test-addon"
|
||||
addon_info.return_value["state"] = "started"
|
||||
addon_info.return_value["version"] = "1.0.0"
|
||||
return addon_info
|
||||
|
||||
|
||||
def mock_install_addon(
|
||||
def mock_install_addon_side_effect(
|
||||
addon_store_info: AsyncMock, addon_info: AsyncMock
|
||||
) -> Generator[AsyncMock]:
|
||||
"""Mock install add-on."""
|
||||
) -> Any | None:
|
||||
"""Return the install add-on side effect."""
|
||||
|
||||
async def install_addon_side_effect(hass: HomeAssistant, slug: str) -> None:
|
||||
async def install_addon(hass: HomeAssistant, slug):
|
||||
"""Mock install add-on."""
|
||||
addon_store_info.return_value = {
|
||||
"available": True,
|
||||
@ -119,17 +126,43 @@ def mock_install_addon(
|
||||
addon_info.return_value["state"] = "stopped"
|
||||
addon_info.return_value["version"] = "1.0.0"
|
||||
|
||||
return install_addon
|
||||
|
||||
|
||||
def mock_install_addon(install_addon_side_effect: Any | None) -> Generator[AsyncMock]:
|
||||
"""Mock install add-on."""
|
||||
|
||||
with patch(
|
||||
"homeassistant.components.hassio.addon_manager.async_install_addon"
|
||||
"homeassistant.components.hassio.addon_manager.async_install_addon",
|
||||
side_effect=install_addon_side_effect,
|
||||
) as install_addon:
|
||||
install_addon.side_effect = install_addon_side_effect
|
||||
yield install_addon
|
||||
|
||||
|
||||
def mock_start_addon() -> Generator[AsyncMock]:
|
||||
def mock_start_addon_side_effect(
|
||||
addon_store_info: AsyncMock, addon_info: AsyncMock
|
||||
) -> Any | None:
|
||||
"""Return the start add-on options side effect."""
|
||||
|
||||
async def start_addon(hass: HomeAssistant, slug):
|
||||
"""Mock start add-on."""
|
||||
addon_store_info.return_value = {
|
||||
"available": True,
|
||||
"installed": "1.0.0",
|
||||
"state": "started",
|
||||
"version": "1.0.0",
|
||||
}
|
||||
addon_info.return_value["available"] = True
|
||||
addon_info.return_value["state"] = "started"
|
||||
|
||||
return start_addon
|
||||
|
||||
|
||||
def mock_start_addon(start_addon_side_effect: Any | None) -> Generator[AsyncMock]:
|
||||
"""Mock start add-on."""
|
||||
with patch(
|
||||
"homeassistant.components.hassio.addon_manager.async_start_addon"
|
||||
"homeassistant.components.hassio.addon_manager.async_start_addon",
|
||||
side_effect=start_addon_side_effect,
|
||||
) as start_addon:
|
||||
yield start_addon
|
||||
|
||||
@ -142,10 +175,11 @@ def mock_stop_addon() -> Generator[AsyncMock]:
|
||||
yield stop_addon
|
||||
|
||||
|
||||
def mock_restart_addon() -> Generator[AsyncMock]:
|
||||
def mock_restart_addon(restart_addon_side_effect: Any | None) -> Generator[AsyncMock]:
|
||||
"""Mock restart add-on."""
|
||||
with patch(
|
||||
"homeassistant.components.hassio.addon_manager.async_restart_addon"
|
||||
"homeassistant.components.hassio.addon_manager.async_restart_addon",
|
||||
side_effect=restart_addon_side_effect,
|
||||
) as restart_addon:
|
||||
yield restart_addon
|
||||
|
||||
@ -158,10 +192,28 @@ def mock_uninstall_addon() -> Generator[AsyncMock]:
|
||||
yield uninstall_addon
|
||||
|
||||
|
||||
def mock_set_addon_options() -> Generator[AsyncMock]:
|
||||
def mock_addon_options(addon_info: AsyncMock) -> dict[str, Any]:
|
||||
"""Mock add-on options."""
|
||||
return addon_info.return_value["options"]
|
||||
|
||||
|
||||
def mock_set_addon_options_side_effect(addon_options: dict[str, Any]) -> Any | None:
|
||||
"""Return the set add-on options side effect."""
|
||||
|
||||
async def set_addon_options(hass: HomeAssistant, slug: str, options: dict) -> None:
|
||||
"""Mock set add-on options."""
|
||||
addon_options.update(options["options"])
|
||||
|
||||
return set_addon_options
|
||||
|
||||
|
||||
def mock_set_addon_options(
|
||||
set_addon_options_side_effect: Any | None,
|
||||
) -> Generator[AsyncMock]:
|
||||
"""Mock set add-on options."""
|
||||
with patch(
|
||||
"homeassistant.components.hassio.addon_manager.async_set_addon_options"
|
||||
"homeassistant.components.hassio.addon_manager.async_set_addon_options",
|
||||
side_effect=set_addon_options_side_effect,
|
||||
) as set_options:
|
||||
yield set_options
|
||||
|
||||
|
@ -738,9 +738,10 @@ async def test_create_backup_error(
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("addon_installed")
|
||||
@pytest.mark.parametrize("set_addon_options_side_effect", [None])
|
||||
async def test_schedule_install_setup_addon(
|
||||
addon_manager: AddonManager,
|
||||
addon_installed: AsyncMock,
|
||||
install_addon: AsyncMock,
|
||||
set_addon_options: AsyncMock,
|
||||
start_addon: AsyncMock,
|
||||
@ -915,11 +916,10 @@ async def test_schedule_install_setup_addon_logs_error(
|
||||
assert start_addon.call_count == start_addon_calls
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("addon_installed")
|
||||
@pytest.mark.parametrize("set_addon_options_side_effect", [None])
|
||||
async def test_schedule_setup_addon(
|
||||
addon_manager: AddonManager,
|
||||
addon_installed: AsyncMock,
|
||||
set_addon_options: AsyncMock,
|
||||
start_addon: AsyncMock,
|
||||
addon_manager: AddonManager, set_addon_options: AsyncMock, start_addon: AsyncMock
|
||||
) -> None:
|
||||
"""Test schedule setup addon."""
|
||||
start_task = addon_manager.async_schedule_setup_addon({"test_key": "test"})
|
||||
|
@ -1,11 +1,9 @@
|
||||
"""Provide common Z-Wave JS fixtures."""
|
||||
|
||||
import asyncio
|
||||
from collections.abc import Generator
|
||||
import copy
|
||||
import io
|
||||
import json
|
||||
from typing import Any
|
||||
from unittest.mock import DEFAULT, AsyncMock, patch
|
||||
|
||||
import pytest
|
||||
@ -18,242 +16,6 @@ from homeassistant.core import HomeAssistant
|
||||
|
||||
from tests.common import MockConfigEntry, load_fixture
|
||||
|
||||
# Add-on fixtures
|
||||
|
||||
|
||||
@pytest.fixture(name="addon_info_side_effect")
|
||||
def addon_info_side_effect_fixture() -> Any | None:
|
||||
"""Return the add-on info side effect."""
|
||||
return None
|
||||
|
||||
|
||||
@pytest.fixture(name="addon_info")
|
||||
def mock_addon_info(addon_info_side_effect: Any | None) -> Generator[AsyncMock]:
|
||||
"""Mock Supervisor add-on info."""
|
||||
with patch(
|
||||
"homeassistant.components.hassio.addon_manager.async_get_addon_info",
|
||||
side_effect=addon_info_side_effect,
|
||||
) as addon_info:
|
||||
addon_info.return_value = {
|
||||
"available": False,
|
||||
"hostname": None,
|
||||
"options": {},
|
||||
"state": None,
|
||||
"update_available": False,
|
||||
"version": None,
|
||||
}
|
||||
yield addon_info
|
||||
|
||||
|
||||
@pytest.fixture(name="addon_store_info_side_effect")
|
||||
def addon_store_info_side_effect_fixture() -> Any | None:
|
||||
"""Return the add-on store info side effect."""
|
||||
return None
|
||||
|
||||
|
||||
@pytest.fixture(name="addon_store_info")
|
||||
def mock_addon_store_info(
|
||||
addon_store_info_side_effect: Any | None,
|
||||
) -> Generator[AsyncMock]:
|
||||
"""Mock Supervisor add-on info."""
|
||||
with patch(
|
||||
"homeassistant.components.hassio.addon_manager.async_get_addon_store_info",
|
||||
side_effect=addon_store_info_side_effect,
|
||||
) as addon_store_info:
|
||||
addon_store_info.return_value = {
|
||||
"available": False,
|
||||
"installed": None,
|
||||
"state": None,
|
||||
"version": "1.0.0",
|
||||
}
|
||||
yield addon_store_info
|
||||
|
||||
|
||||
@pytest.fixture(name="addon_running")
|
||||
def mock_addon_running(addon_store_info: AsyncMock, addon_info: AsyncMock) -> AsyncMock:
|
||||
"""Mock add-on already running."""
|
||||
addon_store_info.return_value = {
|
||||
"available": True,
|
||||
"installed": "1.0.0",
|
||||
"state": "started",
|
||||
"version": "1.0.0",
|
||||
}
|
||||
addon_info.return_value["available"] = True
|
||||
addon_info.return_value["state"] = "started"
|
||||
addon_info.return_value["version"] = "1.0.0"
|
||||
return addon_info
|
||||
|
||||
|
||||
@pytest.fixture(name="addon_installed")
|
||||
def mock_addon_installed(
|
||||
addon_store_info: AsyncMock, addon_info: AsyncMock
|
||||
) -> AsyncMock:
|
||||
"""Mock add-on already installed but not running."""
|
||||
addon_store_info.return_value = {
|
||||
"available": True,
|
||||
"installed": "1.0.0",
|
||||
"state": "stopped",
|
||||
"version": "1.0.0",
|
||||
}
|
||||
addon_info.return_value["available"] = True
|
||||
addon_info.return_value["state"] = "stopped"
|
||||
addon_info.return_value["version"] = "1.0.0"
|
||||
return addon_info
|
||||
|
||||
|
||||
@pytest.fixture(name="addon_not_installed")
|
||||
def mock_addon_not_installed(
|
||||
addon_store_info: AsyncMock, addon_info: AsyncMock
|
||||
) -> AsyncMock:
|
||||
"""Mock add-on not installed."""
|
||||
addon_store_info.return_value["available"] = True
|
||||
return addon_info
|
||||
|
||||
|
||||
@pytest.fixture(name="addon_options")
|
||||
def mock_addon_options(addon_info: AsyncMock):
|
||||
"""Mock add-on options."""
|
||||
return addon_info.return_value["options"]
|
||||
|
||||
|
||||
@pytest.fixture(name="set_addon_options_side_effect")
|
||||
def set_addon_options_side_effect_fixture(
|
||||
addon_options: dict[str, Any],
|
||||
) -> Any | None:
|
||||
"""Return the set add-on options side effect."""
|
||||
|
||||
async def set_addon_options(hass: HomeAssistant, slug: str, options: dict) -> None:
|
||||
"""Mock set add-on options."""
|
||||
addon_options.update(options["options"])
|
||||
|
||||
return set_addon_options
|
||||
|
||||
|
||||
@pytest.fixture(name="set_addon_options")
|
||||
def mock_set_addon_options(
|
||||
set_addon_options_side_effect: Any | None,
|
||||
) -> Generator[AsyncMock]:
|
||||
"""Mock set add-on options."""
|
||||
with patch(
|
||||
"homeassistant.components.hassio.addon_manager.async_set_addon_options",
|
||||
side_effect=set_addon_options_side_effect,
|
||||
) as set_options:
|
||||
yield set_options
|
||||
|
||||
|
||||
@pytest.fixture(name="install_addon_side_effect")
|
||||
def install_addon_side_effect_fixture(
|
||||
addon_store_info: AsyncMock, addon_info: AsyncMock
|
||||
) -> Any | None:
|
||||
"""Return the install add-on side effect."""
|
||||
|
||||
async def install_addon(hass: HomeAssistant, slug):
|
||||
"""Mock install add-on."""
|
||||
addon_store_info.return_value = {
|
||||
"available": True,
|
||||
"installed": "1.0.0",
|
||||
"state": "stopped",
|
||||
"version": "1.0.0",
|
||||
}
|
||||
addon_info.return_value["available"] = True
|
||||
addon_info.return_value["state"] = "stopped"
|
||||
addon_info.return_value["version"] = "1.0.0"
|
||||
|
||||
return install_addon
|
||||
|
||||
|
||||
@pytest.fixture(name="install_addon")
|
||||
def mock_install_addon(install_addon_side_effect: Any | None) -> Generator[AsyncMock]:
|
||||
"""Mock install add-on."""
|
||||
with patch(
|
||||
"homeassistant.components.hassio.addon_manager.async_install_addon",
|
||||
side_effect=install_addon_side_effect,
|
||||
) as install_addon:
|
||||
yield install_addon
|
||||
|
||||
|
||||
@pytest.fixture(name="update_addon")
|
||||
def mock_update_addon() -> Generator[AsyncMock]:
|
||||
"""Mock update add-on."""
|
||||
with patch(
|
||||
"homeassistant.components.hassio.addon_manager.async_update_addon"
|
||||
) as update_addon:
|
||||
yield update_addon
|
||||
|
||||
|
||||
@pytest.fixture(name="start_addon_side_effect")
|
||||
def start_addon_side_effect_fixture(
|
||||
addon_store_info: AsyncMock, addon_info: AsyncMock
|
||||
) -> Any | None:
|
||||
"""Return the start add-on options side effect."""
|
||||
|
||||
async def start_addon(hass: HomeAssistant, slug):
|
||||
"""Mock start add-on."""
|
||||
addon_store_info.return_value = {
|
||||
"available": True,
|
||||
"installed": "1.0.0",
|
||||
"state": "started",
|
||||
"version": "1.0.0",
|
||||
}
|
||||
addon_info.return_value["available"] = True
|
||||
addon_info.return_value["state"] = "started"
|
||||
|
||||
return start_addon
|
||||
|
||||
|
||||
@pytest.fixture(name="start_addon")
|
||||
def mock_start_addon(start_addon_side_effect: Any | None) -> Generator[AsyncMock]:
|
||||
"""Mock start add-on."""
|
||||
with patch(
|
||||
"homeassistant.components.hassio.addon_manager.async_start_addon",
|
||||
side_effect=start_addon_side_effect,
|
||||
) as start_addon:
|
||||
yield start_addon
|
||||
|
||||
|
||||
@pytest.fixture(name="stop_addon")
|
||||
def stop_addon_fixture() -> Generator[AsyncMock]:
|
||||
"""Mock stop add-on."""
|
||||
with patch(
|
||||
"homeassistant.components.hassio.addon_manager.async_stop_addon"
|
||||
) as stop_addon:
|
||||
yield stop_addon
|
||||
|
||||
|
||||
@pytest.fixture(name="restart_addon_side_effect")
|
||||
def restart_addon_side_effect_fixture() -> Any | None:
|
||||
"""Return the restart add-on options side effect."""
|
||||
return None
|
||||
|
||||
|
||||
@pytest.fixture(name="restart_addon")
|
||||
def mock_restart_addon(restart_addon_side_effect: Any | None) -> Generator[AsyncMock]:
|
||||
"""Mock restart add-on."""
|
||||
with patch(
|
||||
"homeassistant.components.hassio.addon_manager.async_restart_addon",
|
||||
side_effect=restart_addon_side_effect,
|
||||
) as restart_addon:
|
||||
yield restart_addon
|
||||
|
||||
|
||||
@pytest.fixture(name="uninstall_addon")
|
||||
def uninstall_addon_fixture() -> Generator[AsyncMock]:
|
||||
"""Mock uninstall add-on."""
|
||||
with patch(
|
||||
"homeassistant.components.hassio.addon_manager.async_uninstall_addon"
|
||||
) as uninstall_addon:
|
||||
yield uninstall_addon
|
||||
|
||||
|
||||
@pytest.fixture(name="create_backup")
|
||||
def create_backup_fixture() -> Generator[AsyncMock]:
|
||||
"""Mock create backup."""
|
||||
with patch(
|
||||
"homeassistant.components.hassio.addon_manager.async_create_backup"
|
||||
) as create_backup:
|
||||
yield create_backup
|
||||
|
||||
|
||||
# State fixtures
|
||||
|
||||
|
||||
|
@ -5,7 +5,7 @@ from collections.abc import Generator
|
||||
from copy import copy
|
||||
from ipaddress import ip_address
|
||||
from typing import Any
|
||||
from unittest.mock import DEFAULT, AsyncMock, MagicMock, call, patch
|
||||
from unittest.mock import AsyncMock, MagicMock, call, patch
|
||||
|
||||
import aiohttp
|
||||
import pytest
|
||||
@ -77,31 +77,6 @@ def mock_supervisor_fixture() -> Generator[None]:
|
||||
yield
|
||||
|
||||
|
||||
@pytest.fixture(name="discovery_info")
|
||||
def discovery_info_fixture() -> dict[str, Any]:
|
||||
"""Return the discovery info from the supervisor."""
|
||||
return DEFAULT
|
||||
|
||||
|
||||
@pytest.fixture(name="discovery_info_side_effect")
|
||||
def discovery_info_side_effect_fixture() -> Any | None:
|
||||
"""Return the discovery info from the supervisor."""
|
||||
return None
|
||||
|
||||
|
||||
@pytest.fixture(name="get_addon_discovery_info")
|
||||
def mock_get_addon_discovery_info(
|
||||
discovery_info: dict[str, Any], discovery_info_side_effect: Any | None
|
||||
) -> Generator[AsyncMock]:
|
||||
"""Mock get add-on discovery info."""
|
||||
with patch(
|
||||
"homeassistant.components.hassio.addon_manager.async_get_addon_discovery_info",
|
||||
side_effect=discovery_info_side_effect,
|
||||
return_value=discovery_info,
|
||||
) as get_addon_discovery_info:
|
||||
yield get_addon_discovery_info
|
||||
|
||||
|
||||
@pytest.fixture(name="server_version_side_effect")
|
||||
def server_version_side_effect_fixture() -> Any | None:
|
||||
"""Return the server version side effect."""
|
||||
|
Loading…
x
Reference in New Issue
Block a user