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."""
system: LiteJet = hass.data[DOMAIN]
return {
"model": system.model_name,
"loads": list(system.loads()),
"button_switches": list(system.button_switches()),
"scenes": list(system.scenes()),

View file

@ -51,7 +51,7 @@ class LiteJetScene(Scene):
identifiers={(DOMAIN, f"{entry_id}_mcp")},
name="LiteJet",
manufacturer="Centralite",
model="CL24",
model=system.model_name,
)
async def async_added_to_hass(self) -> None:

View file

@ -49,10 +49,10 @@ class LiteJetSwitch(SwitchEntity):
self._attr_name = name
# 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(
identifiers={(DOMAIN, f"{entry_id}_keypad_{keypad_number}")},
name=f"Keypad #{keypad_number}",
name=system.get_switch_keypad_name(i),
manufacturer="Centralite",
via_device=(DOMAIN, f"{entry_id}_mcp"),
)

View file

@ -1,6 +1,6 @@
"""Fixtures for LiteJet testing."""
from datetime import timedelta
from unittest.mock import AsyncMock, patch
from unittest.mock import AsyncMock, Mock, patch
import pytest
@ -21,6 +21,12 @@ def mock_litejet():
async def get_switch_name(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.switch_pressed_callbacks = {}
@ -65,6 +71,8 @@ def mock_litejet():
mock_lj.get_switch_name = AsyncMock(side_effect=get_switch_name)
mock_lj.press_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.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.last_delta = timedelta(0)
mock_lj.connected = True
mock_lj.model_name = "MockJet"
def connected_changed(connected: bool, reason: str) -> None:
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)
assert diag == {
"model": "MockJet",
"loads": [1, 2],
"button_switches": [1, 2],
"scenes": [1, 2],