hass-core/tests/components/homekit_controller/conftest.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

47 lines
1.4 KiB
Python
Raw Normal View History

"""HomeKit controller session fixtures."""
import datetime
from unittest.mock import MagicMock, patch
from aiohomekit.testing import FakeController
from freezegun import freeze_time
from freezegun.api import FrozenDateTimeFactory
import pytest
from typing_extensions import Generator
import homeassistant.util.dt as dt_util
from tests.components.light.conftest import mock_light_profiles # noqa: F401
pytest.register_assert_rewrite("tests.components.homekit_controller.common")
@pytest.fixture(autouse=True)
def freeze_time_in_future() -> Generator[FrozenDateTimeFactory]:
"""Freeze time at a known point."""
now = dt_util.utcnow()
start_dt = datetime.datetime(now.year + 1, 1, 1, 0, 0, 0, tzinfo=now.tzinfo)
with freeze_time(start_dt) as frozen_time:
yield frozen_time
@pytest.fixture
def controller() -> Generator[FakeController]:
"""Replace aiohomekit.Controller with an instance of aiohomekit.testing.FakeController."""
instance = FakeController()
with patch(
"homeassistant.components.homekit_controller.utils.Controller",
return_value=instance,
):
yield instance
@pytest.fixture(autouse=True)
def hk_mock_async_zeroconf(mock_async_zeroconf: MagicMock) -> None:
2021-11-18 22:23:20 -06:00
"""Auto mock zeroconf."""
@pytest.fixture(autouse=True)
def auto_mock_bluetooth(mock_bluetooth: None) -> None:
"""Auto mock bluetooth."""