mirror of https://github.com/home-assistant/core
147 lines
5.1 KiB
Python
147 lines
5.1 KiB
Python
"""Constants for the tplink component tests."""
|
|
|
|
from kasa import (
|
|
DeviceConfig,
|
|
DeviceConnectionParameters,
|
|
DeviceEncryptionType,
|
|
DeviceFamily,
|
|
)
|
|
|
|
from homeassistant.components.tplink import (
|
|
CONF_AES_KEYS,
|
|
CONF_ALIAS,
|
|
CONF_CAMERA_CREDENTIALS,
|
|
CONF_CONNECTION_PARAMETERS,
|
|
CONF_CREDENTIALS_HASH,
|
|
CONF_HOST,
|
|
CONF_LIVE_VIEW,
|
|
CONF_MODEL,
|
|
CONF_USES_HTTP,
|
|
Credentials,
|
|
)
|
|
|
|
MODULE = "homeassistant.components.tplink"
|
|
MODULE_CONFIG_FLOW = "homeassistant.components.tplink.config_flow"
|
|
IP_ADDRESS = "127.0.0.1"
|
|
IP_ADDRESS2 = "127.0.0.2"
|
|
IP_ADDRESS3 = "127.0.0.3"
|
|
ALIAS = "My Bulb"
|
|
ALIAS_CAMERA = "My Camera"
|
|
MODEL = "HS100"
|
|
MODEL_CAMERA = "C210"
|
|
MAC_ADDRESS = "aa:bb:cc:dd:ee:ff"
|
|
DEVICE_ID = "123456789ABCDEFGH"
|
|
DEVICE_ID_MAC = "AA:BB:CC:DD:EE:FF"
|
|
DHCP_FORMATTED_MAC_ADDRESS = MAC_ADDRESS.replace(":", "")
|
|
MAC_ADDRESS2 = "11:22:33:44:55:66"
|
|
MAC_ADDRESS3 = "66:55:44:33:22:11"
|
|
DEFAULT_ENTRY_TITLE = f"{ALIAS} {MODEL}"
|
|
DEFAULT_ENTRY_TITLE_CAMERA = f"{ALIAS_CAMERA} {MODEL_CAMERA}"
|
|
CREDENTIALS_HASH_LEGACY = ""
|
|
CONN_PARAMS_LEGACY = DeviceConnectionParameters(
|
|
DeviceFamily.IotSmartPlugSwitch, DeviceEncryptionType.Xor
|
|
)
|
|
DEVICE_CONFIG_LEGACY = DeviceConfig(IP_ADDRESS)
|
|
DEVICE_CONFIG_DICT_LEGACY = {
|
|
k: v for k, v in DEVICE_CONFIG_LEGACY.to_dict().items() if k != "credentials"
|
|
}
|
|
CREDENTIALS = Credentials("foo", "bar")
|
|
CREDENTIALS_HASH_AES = "AES/abcdefghijklmnopqrstuvabcdefghijklmnopqrstuv=="
|
|
CREDENTIALS_HASH_KLAP = "KLAP/abcdefghijklmnopqrstuv=="
|
|
CONN_PARAMS_KLAP = DeviceConnectionParameters(
|
|
DeviceFamily.SmartTapoPlug, DeviceEncryptionType.Klap
|
|
)
|
|
DEVICE_CONFIG_KLAP = DeviceConfig(
|
|
IP_ADDRESS,
|
|
credentials=CREDENTIALS,
|
|
connection_type=CONN_PARAMS_KLAP,
|
|
uses_http=True,
|
|
)
|
|
CONN_PARAMS_AES = DeviceConnectionParameters(
|
|
DeviceFamily.SmartTapoPlug, DeviceEncryptionType.Aes
|
|
)
|
|
_test_privkey = (
|
|
"MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKLJKmBWGj6WYo9sewI8vkqar"
|
|
"Ed5H1JUr8Jj/LEWLTtV6+Mm4mfyEk6YKFHSmIG4AGgrVsGK/EbEkTZk9CwtixNQpBVc36oN2R"
|
|
"vuWWV38YnP4vI63mNxTA/gQonCsahjN4HfwE87pM7O5z39aeunoYm6Be663t33DbJH1ZUbZjm"
|
|
"tAgMBAAECgYB1Bn1KaFvRprcQOIJt51E9vNghQbf8rhj0fIEKpdC6mVhNIoUdCO+URNqnh+hP"
|
|
"SQIx4QYreUlHbsSeABFxOQSDJm6/kqyQsp59nCVDo/bXTtlvcSJ/sU3riqJNxYqEU1iJ0xMvU"
|
|
"N1VKKTmik89J8e5sN9R0AFfUSJIk7MpdOoD2QJBANTbV27nenyvbqee/ul4frdt2rrPGcGpcV"
|
|
"QmY87qbbrZgqgL5LMHHD7T/v/I8D1wRog1sBz/AiZGcnv/ox8dHKsCQQDDx8DCGPySSVqKVua"
|
|
"yUkBNpglN83wiCXZjyEtWIt+aB1A2n5ektE/o8oHnnOuvMdooxvtid7Mdapi2VLHV7VMHAkAE"
|
|
"d0GjWwnv2cJpk+VnQpbuBEkFiFjS/loZWODZM4Pv2qZqHi3DL9AA5XPBLBcWQufH7dBvG06RP"
|
|
"QMj5N4oRfUXAkEAuJJkVliqHNvM4OkGewzyFII4+WVYHNqg43dcFuuvtA27AJQ6qYtYXrvp3k"
|
|
"phI3yzOIhHTNCea1goepSkR5ODFwJBAJCTRbB+P47aEr/xA51ZFHE6VefDBJG9yg6yK4jcOxg"
|
|
"5ficXEpx8442okNtlzwa+QHpm/L3JOFrHwiEeVqXtiqY="
|
|
)
|
|
_test_pubkey = (
|
|
"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCiySpgVho+lmKPbHsCPL5KmqxHeR9SVK/CY"
|
|
"/yxFi07VevjJuJn8hJOmChR0piBuABoK1bBivxGxJE2ZPQsLYsTUKQVXN+qDdkb7llld/GJz+"
|
|
"LyOt5jcUwP4EKJwrGoYzeB38BPO6TOzuc9/Wnrp6GJugXuut7d9w2yR9WVG2Y5rQIDAQAB"
|
|
)
|
|
AES_KEYS = {"private": _test_privkey, "public": _test_pubkey}
|
|
DEVICE_CONFIG_AES = DeviceConfig(
|
|
IP_ADDRESS2,
|
|
credentials=CREDENTIALS,
|
|
connection_type=CONN_PARAMS_AES,
|
|
uses_http=True,
|
|
aes_keys=AES_KEYS,
|
|
)
|
|
CONN_PARAMS_AES_CAMERA = DeviceConnectionParameters(
|
|
DeviceFamily.SmartIpCamera, DeviceEncryptionType.Aes, https=True, login_version=2
|
|
)
|
|
DEVICE_CONFIG_AES_CAMERA = DeviceConfig(
|
|
IP_ADDRESS3,
|
|
credentials=CREDENTIALS,
|
|
connection_type=CONN_PARAMS_AES_CAMERA,
|
|
uses_http=True,
|
|
)
|
|
|
|
DEVICE_CONFIG_DICT_KLAP = {
|
|
k: v for k, v in DEVICE_CONFIG_KLAP.to_dict().items() if k != "credentials"
|
|
}
|
|
DEVICE_CONFIG_DICT_AES = {
|
|
k: v for k, v in DEVICE_CONFIG_AES.to_dict().items() if k != "credentials"
|
|
}
|
|
CREATE_ENTRY_DATA_LEGACY = {
|
|
CONF_HOST: IP_ADDRESS,
|
|
CONF_ALIAS: ALIAS,
|
|
CONF_MODEL: MODEL,
|
|
CONF_CONNECTION_PARAMETERS: CONN_PARAMS_LEGACY.to_dict(),
|
|
CONF_USES_HTTP: False,
|
|
}
|
|
|
|
CREATE_ENTRY_DATA_KLAP = {
|
|
CONF_HOST: IP_ADDRESS,
|
|
CONF_ALIAS: ALIAS,
|
|
CONF_MODEL: MODEL,
|
|
CONF_CREDENTIALS_HASH: CREDENTIALS_HASH_KLAP,
|
|
CONF_CONNECTION_PARAMETERS: CONN_PARAMS_KLAP.to_dict(),
|
|
CONF_USES_HTTP: True,
|
|
}
|
|
CREATE_ENTRY_DATA_AES = {
|
|
CONF_HOST: IP_ADDRESS2,
|
|
CONF_ALIAS: ALIAS,
|
|
CONF_MODEL: MODEL,
|
|
CONF_CREDENTIALS_HASH: CREDENTIALS_HASH_AES,
|
|
CONF_CONNECTION_PARAMETERS: CONN_PARAMS_AES.to_dict(),
|
|
CONF_USES_HTTP: True,
|
|
CONF_AES_KEYS: AES_KEYS,
|
|
}
|
|
CREATE_ENTRY_DATA_AES_CAMERA = {
|
|
CONF_HOST: IP_ADDRESS3,
|
|
CONF_ALIAS: ALIAS_CAMERA,
|
|
CONF_MODEL: MODEL_CAMERA,
|
|
CONF_CREDENTIALS_HASH: CREDENTIALS_HASH_AES,
|
|
CONF_CONNECTION_PARAMETERS: CONN_PARAMS_AES_CAMERA.to_dict(),
|
|
CONF_USES_HTTP: True,
|
|
CONF_LIVE_VIEW: True,
|
|
CONF_CAMERA_CREDENTIALS: {"username": "camuser", "password": "campass"},
|
|
}
|
|
SMALLEST_VALID_JPEG = (
|
|
"ffd8ffe000104a46494600010101004800480000ffdb00430003020202020203020202030303030406040404040408060"
|
|
"6050609080a0a090809090a0c0f0c0a0b0e0b09090d110d0e0f101011100a0c12131210130f101010ffc9000b08000100"
|
|
"0101011100ffcc000600101005ffda0008010100003f00d2cf20ffd9"
|
|
)
|
|
SMALLEST_VALID_JPEG_BYTES = bytes.fromhex(SMALLEST_VALID_JPEG)
|