Remove hardcoded bits from LiteJet integration (#106281)
Use the new properties from pylitejet v0.6.0.
This commit is contained in:
parent
1d9a2b53e7
commit
45fde2db4e
5 changed files with 15 additions and 4 deletions
|
@ -15,6 +15,7 @@ async def async_get_config_entry_diagnostics(
|
||||||
"""Return diagnostics for LiteJet config entry."""
|
"""Return diagnostics for LiteJet config entry."""
|
||||||
system: LiteJet = hass.data[DOMAIN]
|
system: LiteJet = hass.data[DOMAIN]
|
||||||
return {
|
return {
|
||||||
|
"model": system.model_name,
|
||||||
"loads": list(system.loads()),
|
"loads": list(system.loads()),
|
||||||
"button_switches": list(system.button_switches()),
|
"button_switches": list(system.button_switches()),
|
||||||
"scenes": list(system.scenes()),
|
"scenes": list(system.scenes()),
|
||||||
|
|
|
@ -51,7 +51,7 @@ class LiteJetScene(Scene):
|
||||||
identifiers={(DOMAIN, f"{entry_id}_mcp")},
|
identifiers={(DOMAIN, f"{entry_id}_mcp")},
|
||||||
name="LiteJet",
|
name="LiteJet",
|
||||||
manufacturer="Centralite",
|
manufacturer="Centralite",
|
||||||
model="CL24",
|
model=system.model_name,
|
||||||
)
|
)
|
||||||
|
|
||||||
async def async_added_to_hass(self) -> None:
|
async def async_added_to_hass(self) -> None:
|
||||||
|
|
|
@ -49,10 +49,10 @@ class LiteJetSwitch(SwitchEntity):
|
||||||
self._attr_name = name
|
self._attr_name = name
|
||||||
|
|
||||||
# Keypad #1 has switches 1-6, #2 has 7-12, ...
|
# Keypad #1 has switches 1-6, #2 has 7-12, ...
|
||||||
keypad_number = int((i - 1) / 6) + 1
|
keypad_number = system.get_switch_keypad_number(i)
|
||||||
self._attr_device_info = DeviceInfo(
|
self._attr_device_info = DeviceInfo(
|
||||||
identifiers={(DOMAIN, f"{entry_id}_keypad_{keypad_number}")},
|
identifiers={(DOMAIN, f"{entry_id}_keypad_{keypad_number}")},
|
||||||
name=f"Keypad #{keypad_number}",
|
name=system.get_switch_keypad_name(i),
|
||||||
manufacturer="Centralite",
|
manufacturer="Centralite",
|
||||||
via_device=(DOMAIN, f"{entry_id}_mcp"),
|
via_device=(DOMAIN, f"{entry_id}_mcp"),
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
"""Fixtures for LiteJet testing."""
|
"""Fixtures for LiteJet testing."""
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from unittest.mock import AsyncMock, patch
|
from unittest.mock import AsyncMock, Mock, patch
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
|
@ -21,6 +21,12 @@ def mock_litejet():
|
||||||
async def get_switch_name(number):
|
async def get_switch_name(number):
|
||||||
return f"Mock Switch #{number}"
|
return f"Mock Switch #{number}"
|
||||||
|
|
||||||
|
def get_switch_keypad_number(number):
|
||||||
|
return number + 100
|
||||||
|
|
||||||
|
def get_switch_keypad_name(number):
|
||||||
|
return f"Mock Keypad #{number + 100}"
|
||||||
|
|
||||||
mock_lj = mock_pylitejet.return_value
|
mock_lj = mock_pylitejet.return_value
|
||||||
|
|
||||||
mock_lj.switch_pressed_callbacks = {}
|
mock_lj.switch_pressed_callbacks = {}
|
||||||
|
@ -65,6 +71,8 @@ def mock_litejet():
|
||||||
mock_lj.get_switch_name = AsyncMock(side_effect=get_switch_name)
|
mock_lj.get_switch_name = AsyncMock(side_effect=get_switch_name)
|
||||||
mock_lj.press_switch = AsyncMock()
|
mock_lj.press_switch = AsyncMock()
|
||||||
mock_lj.release_switch = AsyncMock()
|
mock_lj.release_switch = AsyncMock()
|
||||||
|
mock_lj.get_switch_keypad_number = Mock(side_effect=get_switch_keypad_number)
|
||||||
|
mock_lj.get_switch_keypad_name = Mock(side_effect=get_switch_keypad_name)
|
||||||
|
|
||||||
mock_lj.scenes.return_value = range(1, 3)
|
mock_lj.scenes.return_value = range(1, 3)
|
||||||
mock_lj.get_scene_name = AsyncMock(side_effect=get_scene_name)
|
mock_lj.get_scene_name = AsyncMock(side_effect=get_scene_name)
|
||||||
|
@ -74,6 +82,7 @@ def mock_litejet():
|
||||||
mock_lj.start_time = dt_util.utcnow()
|
mock_lj.start_time = dt_util.utcnow()
|
||||||
mock_lj.last_delta = timedelta(0)
|
mock_lj.last_delta = timedelta(0)
|
||||||
mock_lj.connected = True
|
mock_lj.connected = True
|
||||||
|
mock_lj.model_name = "MockJet"
|
||||||
|
|
||||||
def connected_changed(connected: bool, reason: str) -> None:
|
def connected_changed(connected: bool, reason: str) -> None:
|
||||||
mock_lj.connected = connected
|
mock_lj.connected = connected
|
||||||
|
|
|
@ -17,6 +17,7 @@ async def test_diagnostics(
|
||||||
diag = await get_diagnostics_for_config_entry(hass, hass_client, config_entry)
|
diag = await get_diagnostics_for_config_entry(hass, hass_client, config_entry)
|
||||||
|
|
||||||
assert diag == {
|
assert diag == {
|
||||||
|
"model": "MockJet",
|
||||||
"loads": [1, 2],
|
"loads": [1, 2],
|
||||||
"button_switches": [1, 2],
|
"button_switches": [1, 2],
|
||||||
"scenes": [1, 2],
|
"scenes": [1, 2],
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue