57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
"""Test helpers."""
|
|
|
|
from collections.abc import Generator
|
|
from datetime import UTC, datetime, timedelta
|
|
from unittest.mock import AsyncMock, patch
|
|
|
|
import pytest
|
|
|
|
from homeassistant.components.fyta.const import CONF_EXPIRATION
|
|
from homeassistant.const import CONF_ACCESS_TOKEN
|
|
|
|
from .test_config_flow import ACCESS_TOKEN, EXPIRATION
|
|
|
|
|
|
@pytest.fixture
|
|
def mock_fyta():
|
|
"""Build a fixture for the Fyta API that connects successfully and returns one device."""
|
|
|
|
mock_fyta_api = AsyncMock()
|
|
with patch(
|
|
"homeassistant.components.fyta.config_flow.FytaConnector",
|
|
return_value=mock_fyta_api,
|
|
) as mock_fyta_api:
|
|
mock_fyta_api.return_value.login.return_value = {
|
|
CONF_ACCESS_TOKEN: ACCESS_TOKEN,
|
|
CONF_EXPIRATION: EXPIRATION,
|
|
}
|
|
yield mock_fyta_api
|
|
|
|
|
|
@pytest.fixture
|
|
def mock_fyta_init():
|
|
"""Build a fixture for the Fyta API that connects successfully and returns one device."""
|
|
|
|
mock_fyta_api = AsyncMock()
|
|
mock_fyta_api.expiration = datetime.now(tz=UTC) + timedelta(days=1)
|
|
mock_fyta_api.login = AsyncMock(
|
|
return_value={
|
|
CONF_ACCESS_TOKEN: ACCESS_TOKEN,
|
|
CONF_EXPIRATION: EXPIRATION,
|
|
}
|
|
)
|
|
with patch(
|
|
"homeassistant.components.fyta.FytaConnector.__new__",
|
|
return_value=mock_fyta_api,
|
|
):
|
|
yield mock_fyta_api
|
|
|
|
|
|
@pytest.fixture
|
|
def mock_setup_entry() -> Generator[AsyncMock, None, None]:
|
|
"""Override async_setup_entry."""
|
|
with patch(
|
|
"homeassistant.components.fyta.async_setup_entry", return_value=True
|
|
) as mock_setup_entry:
|
|
yield mock_setup_entry
|