core/tests/components/home_plus_control/conftest.py

104 lines
3.0 KiB
Python

"""Test setup and fixtures for component Home+ Control by Legrand."""
from homepluscontrol.homeplusinteractivemodule import HomePlusInteractiveModule
from homepluscontrol.homeplusplant import HomePlusPlant
import pytest
from homeassistant.components.home_plus_control.const import DOMAIN
from tests.common import MockConfigEntry
CLIENT_ID = "1234"
CLIENT_SECRET = "5678"
SUBSCRIPTION_KEY = "12345678901234567890123456789012"
@pytest.fixture()
def mock_config_entry():
"""Return a fake config entry.
This is a minimal entry to setup the integration and to ensure that the
OAuth access token will not expire.
"""
return MockConfigEntry(
domain=DOMAIN,
title="Home+ Control",
data={
"auth_implementation": "home_plus_control",
"token": {
"refresh_token": "mock-refresh-token",
"access_token": "mock-access-token",
"type": "Bearer",
"expires_in": 9999999999,
"expires_at": 9999999999.99999999,
"expires_on": 9999999999,
},
},
source="test",
options={},
unique_id=DOMAIN,
entry_id="home_plus_control_entry_id",
)
@pytest.fixture()
def mock_modules():
"""Return the full set of mock modules."""
plant = HomePlusPlant(
id="123456789009876543210", name="My Home", country="ES", oauth_client=None
)
modules = {
"0000000987654321fedcba": HomePlusInteractiveModule(
plant,
id="0000000987654321fedcba",
name="Kitchen Wall Outlet",
hw_type="NLP",
device="plug",
fw="42",
reachable=True,
),
"0000000887654321fedcba": HomePlusInteractiveModule(
plant,
id="0000000887654321fedcba",
name="Bedroom Wall Outlet",
hw_type="NLP",
device="light",
fw="42",
reachable=True,
),
"0000000787654321fedcba": HomePlusInteractiveModule(
plant,
id="0000000787654321fedcba",
name="Living Room Ceiling Light",
hw_type="NLF",
device="light",
fw="46",
reachable=True,
),
"0000000687654321fedcba": HomePlusInteractiveModule(
plant,
id="0000000687654321fedcba",
name="Dining Room Ceiling Light",
hw_type="NLF",
device="light",
fw="46",
reachable=True,
),
"0000000587654321fedcba": HomePlusInteractiveModule(
plant,
id="0000000587654321fedcba",
name="Dining Room Wall Outlet",
hw_type="NLP",
device="plug",
fw="42",
reachable=True,
),
}
# Set lights off and plugs on
for mod_stat in modules.values():
mod_stat.status = "on"
if mod_stat.device == "light":
mod_stat.status = "off"
return modules