1
0
mirror of https://github.com/home-assistant/core.git synced 2026-04-02 08:26:41 +01:00
Files
core/tests/components/aladdin_connect/conftest.py
2026-02-23 22:16:51 +01:00

90 lines
2.5 KiB
Python

"""Fixtures for aladdin_connect tests."""
from collections.abc import Generator
from time import time
from unittest.mock import AsyncMock, patch
import pytest
from homeassistant.components.aladdin_connect import DOMAIN
from homeassistant.components.application_credentials import (
DOMAIN as APPLICATION_CREDENTIALS_DOMAIN,
ClientCredential,
async_import_client_credential,
)
from homeassistant.core import HomeAssistant
from homeassistant.setup import async_setup_component
from .const import CLIENT_ID, CLIENT_SECRET, USER_ID
from tests.common import MockConfigEntry
@pytest.fixture(autouse=True)
async def setup_credentials(hass: HomeAssistant) -> None:
"""Fixture to setup credentials."""
assert await async_setup_component(hass, APPLICATION_CREDENTIALS_DOMAIN, {})
await async_import_client_credential(
hass,
DOMAIN,
ClientCredential(CLIENT_ID, CLIENT_SECRET),
)
@pytest.fixture(autouse=True)
def mock_aladdin_connect_api() -> Generator[AsyncMock]:
"""Mock the AladdinConnectClient."""
mock_door = AsyncMock()
mock_door.device_id = "test_device_id"
mock_door.door_number = 1
mock_door.name = "Test Door"
mock_door.status = "closed"
mock_door.link_status = "connected"
mock_door.battery_level = 100
mock_door.unique_id = f"{mock_door.device_id}-{mock_door.door_number}"
with (
patch(
"homeassistant.components.aladdin_connect.AladdinConnectClient",
autospec=True,
) as mock_client,
patch(
"homeassistant.components.aladdin_connect.config_flow.AladdinConnectClient",
new=mock_client,
),
):
client = mock_client.return_value
client.get_doors.return_value = [mock_door]
yield client
@pytest.fixture
def mock_setup_entry() -> AsyncMock:
"""Fixture to mock setup entry."""
with patch(
"homeassistant.components.aladdin_connect.async_setup_entry", return_value=True
):
yield
@pytest.fixture
def mock_config_entry() -> MockConfigEntry:
"""Define a mock config entry fixture."""
return MockConfigEntry(
version=1,
minor_version=1,
domain=DOMAIN,
title="Aladdin Connect",
data={
"auth_implementation": DOMAIN,
"token": {
"access_token": "old-token",
"refresh_token": "old-refresh-token",
"expires_in": 3600,
"expires_at": time() + 3600,
},
},
source="user",
unique_id=USER_ID,
)