Improve type hints in lcn tests (#123648)

pull/123674/head^2
epenet 2024-08-12 21:53:32 +02:00 committed by GitHub
parent 31dcc6f685
commit b0d1d7bdb2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 15 additions and 9 deletions

View File

@ -1,5 +1,6 @@
"""Test configuration and mocks for LCN component."""
from collections.abc import AsyncGenerator
import json
from unittest.mock import AsyncMock, patch
@ -10,8 +11,9 @@ from pypck.module import GroupConnection, ModuleConnection
import pytest
from homeassistant.components.lcn.const import DOMAIN
from homeassistant.components.lcn.helpers import generate_unique_id
from homeassistant.components.lcn.helpers import AddressType, generate_unique_id
from homeassistant.const import CONF_HOST
from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr
from homeassistant.setup import async_setup_component
@ -42,13 +44,13 @@ class MockGroupConnection(GroupConnection):
class MockPchkConnectionManager(PchkConnectionManager):
"""Fake connection handler."""
async def async_connect(self, timeout=30):
async def async_connect(self, timeout: int = 30) -> None:
"""Mock establishing a connection to PCHK."""
self.authentication_completed_future.set_result(True)
self.license_error_future.set_result(True)
self.segment_scan_completed_event.set()
async def async_close(self):
async def async_close(self) -> None:
"""Mock closing a connection to PCHK."""
@patch.object(pypck.connection, "ModuleConnection", MockModuleConnection)
@ -60,7 +62,7 @@ class MockPchkConnectionManager(PchkConnectionManager):
send_command = AsyncMock()
def create_config_entry(name):
def create_config_entry(name: str) -> MockConfigEntry:
"""Set up config entries with configuration data."""
fixture_filename = f"lcn/config_entry_{name}.json"
entry_data = json.loads(load_fixture(fixture_filename))
@ -78,19 +80,21 @@ def create_config_entry(name):
@pytest.fixture(name="entry")
def create_config_entry_pchk():
def create_config_entry_pchk() -> MockConfigEntry:
"""Return one specific config entry."""
return create_config_entry("pchk")
@pytest.fixture(name="entry2")
def create_config_entry_myhome():
def create_config_entry_myhome() -> MockConfigEntry:
"""Return one specific config entry."""
return create_config_entry("myhome")
@pytest.fixture(name="lcn_connection")
async def init_integration(hass, entry):
async def init_integration(
hass: HomeAssistant, entry: MockConfigEntry
) -> AsyncGenerator[MockPchkConnectionManager]:
"""Set up the LCN integration in Home Assistant."""
lcn_connection = None
@ -109,7 +113,7 @@ async def init_integration(hass, entry):
yield lcn_connection
async def setup_component(hass):
async def setup_component(hass: HomeAssistant) -> None:
"""Set up the LCN component."""
fixture_filename = "lcn/config.json"
config_data = json.loads(load_fixture(fixture_filename))
@ -118,7 +122,9 @@ async def setup_component(hass):
await hass.async_block_till_done()
def get_device(hass, entry, address):
def get_device(
hass: HomeAssistant, entry: MockConfigEntry, address: AddressType
) -> dr.DeviceEntry:
"""Get LCN device for specified address."""
device_registry = dr.async_get(hass)
identifiers = {(DOMAIN, generate_unique_id(entry.entry_id, address))}