- critical: listen_port по умолчанию 0 (эфемерный) — несколько ConfigEntry не конфликтуют; тест двух записей на дефолтном порту - manifest: добавлен обязательный ключ codeowners - unload: set_log_handler(None) вынесен в executor (не блокирует loop); рефкаунт лог-пампа без гонки (старт после успешного setup) - config flow: возврат введённого в форму при ошибке (add_suggested_values_to_schema; секреты исключены), YAML-import подключён через async_setup + SOURCE_IMPORT, ProvisionError.kind вместо разбора русского текста, валидация device_port/key_id из JSON - trial: требует получения всех базовых свойств шаблона (не пустой ok), безопасное создание Session - py-ci.sh: отсутствие .venv-ha — ошибка (PY_CI_SKIP_HA=1 для пропуска); pytest.ini testpaths
39 lines
900 B
Python
39 lines
900 B
Python
"""Фикстуры тестов HA-компонента fglair."""
|
|
from __future__ import annotations
|
|
|
|
import pytest
|
|
from helpers import DSN, KEY_ID, LANIP_KEY
|
|
from pytest_homeassistant_custom_component.common import MockConfigEntry
|
|
|
|
from custom_components.fglair.const import (
|
|
CONF_DEVICE_PORT,
|
|
CONF_DSN,
|
|
CONF_HOST,
|
|
CONF_LANIP_KEY,
|
|
CONF_LANIP_KEY_ID,
|
|
CONF_TEMPLATE,
|
|
DOMAIN,
|
|
)
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def auto_enable_custom_integrations(enable_custom_integrations):
|
|
yield
|
|
|
|
|
|
@pytest.fixture
|
|
def entry_data() -> dict:
|
|
return {
|
|
CONF_HOST: "127.0.0.1",
|
|
CONF_DEVICE_PORT: 9,
|
|
CONF_DSN: DSN,
|
|
CONF_LANIP_KEY: LANIP_KEY,
|
|
CONF_LANIP_KEY_ID: KEY_ID,
|
|
CONF_TEMPLATE: "A",
|
|
}
|
|
|
|
|
|
@pytest.fixture
|
|
def config_entry(entry_data) -> MockConfigEntry:
|
|
return MockConfigEntry(domain=DOMAIN, data=entry_data, unique_id=DSN)
|