mirror of
https://github.com/home-assistant/core.git
synced 2025-04-19 14:57:52 +00:00
Add MockModule type hints in tests (#120007)
This commit is contained in:
parent
0dd5391cd7
commit
7af79ba013
@ -783,21 +783,38 @@ class MockModule:
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
domain=None,
|
||||
dependencies=None,
|
||||
setup=None,
|
||||
requirements=None,
|
||||
config_schema=None,
|
||||
platform_schema=None,
|
||||
platform_schema_base=None,
|
||||
async_setup=None,
|
||||
async_setup_entry=None,
|
||||
async_unload_entry=None,
|
||||
async_migrate_entry=None,
|
||||
async_remove_entry=None,
|
||||
partial_manifest=None,
|
||||
async_remove_config_entry_device=None,
|
||||
):
|
||||
domain: str | None = None,
|
||||
*,
|
||||
dependencies: list[str] | None = None,
|
||||
setup: Callable[[HomeAssistant, ConfigType], bool] | None = None,
|
||||
requirements: list[str] | None = None,
|
||||
config_schema: vol.Schema | None = None,
|
||||
platform_schema: vol.Schema | None = None,
|
||||
platform_schema_base: vol.Schema | None = None,
|
||||
async_setup: Callable[[HomeAssistant, ConfigType], Coroutine[Any, Any, bool]]
|
||||
| None = None,
|
||||
async_setup_entry: Callable[
|
||||
[HomeAssistant, ConfigEntry], Coroutine[Any, Any, bool]
|
||||
]
|
||||
| None = None,
|
||||
async_unload_entry: Callable[
|
||||
[HomeAssistant, ConfigEntry], Coroutine[Any, Any, bool]
|
||||
]
|
||||
| None = None,
|
||||
async_migrate_entry: Callable[
|
||||
[HomeAssistant, ConfigEntry], Coroutine[Any, Any, bool]
|
||||
]
|
||||
| None = None,
|
||||
async_remove_entry: Callable[
|
||||
[HomeAssistant, ConfigEntry], Coroutine[Any, Any, None]
|
||||
]
|
||||
| None = None,
|
||||
partial_manifest: dict[str, Any] | None = None,
|
||||
async_remove_config_entry_device: Callable[
|
||||
[HomeAssistant, ConfigEntry, dr.DeviceEntry], Coroutine[Any, Any, bool]
|
||||
]
|
||||
| None = None,
|
||||
) -> None:
|
||||
"""Initialize the mock module."""
|
||||
self.__name__ = f"homeassistant.components.{domain}"
|
||||
self.__file__ = f"homeassistant/components/{domain}"
|
||||
|
@ -25,20 +25,20 @@ from .common import MockModule, async_get_persistent_notifications, mock_integra
|
||||
async def test_circular_component_dependencies(hass: HomeAssistant) -> None:
|
||||
"""Test if we can detect circular dependencies of components."""
|
||||
mock_integration(hass, MockModule("mod1"))
|
||||
mock_integration(hass, MockModule("mod2", ["mod1"]))
|
||||
mock_integration(hass, MockModule("mod3", ["mod1"]))
|
||||
mod_4 = mock_integration(hass, MockModule("mod4", ["mod2", "mod3"]))
|
||||
mock_integration(hass, MockModule("mod2", dependencies=["mod1"]))
|
||||
mock_integration(hass, MockModule("mod3", dependencies=["mod1"]))
|
||||
mod_4 = mock_integration(hass, MockModule("mod4", dependencies=["mod2", "mod3"]))
|
||||
|
||||
deps = await loader._async_component_dependencies(hass, mod_4)
|
||||
assert deps == {"mod1", "mod2", "mod3", "mod4"}
|
||||
|
||||
# Create a circular dependency
|
||||
mock_integration(hass, MockModule("mod1", ["mod4"]))
|
||||
mock_integration(hass, MockModule("mod1", dependencies=["mod4"]))
|
||||
with pytest.raises(loader.CircularDependency):
|
||||
await loader._async_component_dependencies(hass, mod_4)
|
||||
|
||||
# Create a different circular dependency
|
||||
mock_integration(hass, MockModule("mod1", ["mod3"]))
|
||||
mock_integration(hass, MockModule("mod1", dependencies=["mod3"]))
|
||||
with pytest.raises(loader.CircularDependency):
|
||||
await loader._async_component_dependencies(hass, mod_4)
|
||||
|
||||
@ -59,7 +59,7 @@ async def test_circular_component_dependencies(hass: HomeAssistant) -> None:
|
||||
|
||||
async def test_nonexistent_component_dependencies(hass: HomeAssistant) -> None:
|
||||
"""Test if we can detect nonexistent dependencies of components."""
|
||||
mod_1 = mock_integration(hass, MockModule("mod1", ["nonexistent"]))
|
||||
mod_1 = mock_integration(hass, MockModule("mod1", dependencies=["nonexistent"]))
|
||||
with pytest.raises(loader.IntegrationNotFound):
|
||||
await loader._async_component_dependencies(hass, mod_1)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user