Add diagnostics test to AndroidTV (#117129)
This commit is contained in:
parent
a3c3f938a7
commit
7f934bafc2
4 changed files with 212 additions and 133 deletions
114
tests/components/androidtv/common.py
Normal file
114
tests/components/androidtv/common.py
Normal file
|
@ -0,0 +1,114 @@
|
|||
"""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
|
Loading…
Add table
Add a link
Reference in a new issue