Remove hardcoded bits from LiteJet integration (#106281)

Use the new properties from pylitejet v0.6.0.
This commit is contained in:
Jon Caruana 2023-12-27 06:43:00 -08:00 committed by GitHub
parent 1d9a2b53e7
commit 45fde2db4e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 15 additions and 4 deletions

View file

@ -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()),

View file

@ -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:

View file

@ -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"),
) )

View file

@ -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

View file

@ -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],