"""Test code shared between test files.""" from typing import Any from homeassistant.components.androidtv.const import ( CONF_ADB_SERVER_IP, CONF_ADB_SERVER_PORT, CONF_ADBKEY, DEFAULT_ADB_SERVER_PORT, DEFAULT_PORT, DEVICE_ANDROIDTV, DEVICE_FIRETV, DOMAIN, ) from homeassistant.components.androidtv.entity import PREFIX_ANDROIDTV, PREFIX_FIRETV from homeassistant.const import CONF_DEVICE_CLASS, CONF_HOST, CONF_NAME, CONF_PORT from homeassistant.util import slugify from . import patchers from tests.common import MockConfigEntry ADB_PATCH_KEY = "patch_key" TEST_ENTITY_NAME = "entity_name" TEST_HOST_NAME = "127.0.0.1" SHELL_RESPONSE_OFF = "" SHELL_RESPONSE_STANDBY = "1" # Android device with Python ADB implementation CONFIG_ANDROID_PYTHON_ADB = { ADB_PATCH_KEY: patchers.KEY_PYTHON, TEST_ENTITY_NAME: f"{PREFIX_ANDROIDTV} {TEST_HOST_NAME}", DOMAIN: { CONF_HOST: TEST_HOST_NAME, CONF_PORT: DEFAULT_PORT, CONF_DEVICE_CLASS: DEVICE_ANDROIDTV, }, } # Android device with Python ADB implementation imported from YAML CONFIG_ANDROID_PYTHON_ADB_YAML = { ADB_PATCH_KEY: patchers.KEY_PYTHON, TEST_ENTITY_NAME: "ADB yaml import", DOMAIN: { CONF_NAME: "ADB yaml import", **CONFIG_ANDROID_PYTHON_ADB[DOMAIN], }, } # Android device with Python ADB implementation with custom adbkey CONFIG_ANDROID_PYTHON_ADB_KEY = { ADB_PATCH_KEY: patchers.KEY_PYTHON, TEST_ENTITY_NAME: CONFIG_ANDROID_PYTHON_ADB[TEST_ENTITY_NAME], DOMAIN: { **CONFIG_ANDROID_PYTHON_ADB[DOMAIN], CONF_ADBKEY: "user_provided_adbkey", }, } # Android device with ADB server CONFIG_ANDROID_ADB_SERVER = { ADB_PATCH_KEY: patchers.KEY_SERVER, TEST_ENTITY_NAME: f"{PREFIX_ANDROIDTV} {TEST_HOST_NAME}", DOMAIN: { CONF_HOST: TEST_HOST_NAME, CONF_PORT: DEFAULT_PORT, CONF_DEVICE_CLASS: DEVICE_ANDROIDTV, CONF_ADB_SERVER_IP: patchers.ADB_SERVER_HOST, CONF_ADB_SERVER_PORT: DEFAULT_ADB_SERVER_PORT, }, } # Fire TV device with Python ADB implementation CONFIG_FIRETV_PYTHON_ADB = { ADB_PATCH_KEY: patchers.KEY_PYTHON, TEST_ENTITY_NAME: f"{PREFIX_FIRETV} {TEST_HOST_NAME}", DOMAIN: { CONF_HOST: TEST_HOST_NAME, CONF_PORT: DEFAULT_PORT, CONF_DEVICE_CLASS: DEVICE_FIRETV, }, } # Fire TV device with ADB server CONFIG_FIRETV_ADB_SERVER = { ADB_PATCH_KEY: patchers.KEY_SERVER, TEST_ENTITY_NAME: f"{PREFIX_FIRETV} {TEST_HOST_NAME}", DOMAIN: { CONF_HOST: TEST_HOST_NAME, CONF_PORT: DEFAULT_PORT, CONF_DEVICE_CLASS: DEVICE_FIRETV, CONF_ADB_SERVER_IP: patchers.ADB_SERVER_HOST, CONF_ADB_SERVER_PORT: DEFAULT_ADB_SERVER_PORT, }, } CONFIG_ANDROID_DEFAULT = CONFIG_ANDROID_PYTHON_ADB CONFIG_FIRETV_DEFAULT = CONFIG_FIRETV_PYTHON_ADB def setup_mock_entry( config: dict[str, Any], entity_domain: str ) -> tuple[str, str, MockConfigEntry]: """Prepare mock entry for entities tests.""" patch_key = config[ADB_PATCH_KEY] entity_id = f"{entity_domain}.{slugify(config[TEST_ENTITY_NAME])}" config_entry = MockConfigEntry( domain=DOMAIN, data=config[DOMAIN], unique_id="a1:b1:c1:d1:e1:f1", ) return patch_key, entity_id, config_entry