30 lines
924 B
Python
30 lines
924 B
Python
"""HomeKit session fixtures."""
|
|
from unittest.mock import patch
|
|
|
|
import pytest
|
|
|
|
from homeassistant.components.homekit.const import EVENT_HOMEKIT_CHANGED
|
|
from homeassistant.core import callback as ha_callback
|
|
|
|
from pyhap.accessory_driver import AccessoryDriver
|
|
|
|
|
|
@pytest.fixture(scope='session')
|
|
def hk_driver():
|
|
"""Return a custom AccessoryDriver instance for HomeKit accessory init."""
|
|
with patch('pyhap.accessory_driver.Zeroconf'), \
|
|
patch('pyhap.accessory_driver.AccessoryEncoder'), \
|
|
patch('pyhap.accessory_driver.HAPServer'), \
|
|
patch('pyhap.accessory_driver.AccessoryDriver.publish'):
|
|
return AccessoryDriver(pincode=b'123-45-678', address='127.0.0.1')
|
|
|
|
|
|
@pytest.fixture
|
|
def events(hass):
|
|
"""Yield caught homekit_changed events."""
|
|
events = []
|
|
hass.bus.async_listen(
|
|
EVENT_HOMEKIT_CHANGED,
|
|
ha_callback(lambda e: events.append(e)))
|
|
yield events
|