core/tests/typing.py

26 lines
1.1 KiB
Python
Raw Normal View History

"""Typing helpers for Home Assistant tests."""
from __future__ import annotations
from collections.abc import Callable, Coroutine
from typing import TYPE_CHECKING, Any, TypeAlias
from unittest.mock import MagicMock
from aiohttp import ClientWebSocketResponse
from aiohttp.test_utils import TestClient
if TYPE_CHECKING:
# Local import to avoid processing recorder module when running a
# testcase which does not use the recorder.
from homeassistant.components.recorder import Recorder
2023-01-31 07:48:35 +00:00
ClientSessionGenerator = Callable[..., Coroutine[Any, Any, TestClient]]
MqttMockPahoClient = MagicMock
"""MagicMock for `paho.mqtt.client.Client`"""
MqttMockHAClient = MagicMock
"""MagicMock for `homeassistant.components.mqtt.MQTT`."""
MqttMockHAClientGenerator = Callable[..., Coroutine[Any, Any, MqttMockHAClient]]
"""MagicMock generator for `homeassistant.components.mqtt.MQTT`."""
RecorderInstanceGenerator: TypeAlias = Callable[..., Coroutine[Any, Any, "Recorder"]]
"""Instance generator for `homeassistant.components.recorder.Recorder`."""
2023-01-31 07:48:35 +00:00
WebSocketGenerator = Callable[..., Coroutine[Any, Any, ClientWebSocketResponse]]