104 lines
3.0 KiB
Python
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
|