mirror of
https://github.com/home-assistant/core.git
synced 2025-07-27 23:27:37 +00:00
Do not specify the code_format when a code is not required (#148698)
This commit is contained in:
parent
dcbdce4b2b
commit
25f64a2f36
@ -82,7 +82,6 @@ async def async_setup_entry(
|
||||
class RiscoAlarm(AlarmControlPanelEntity):
|
||||
"""Representation of a Risco cloud partition."""
|
||||
|
||||
_attr_code_format = CodeFormat.NUMBER
|
||||
_attr_has_entity_name = True
|
||||
_attr_name = None
|
||||
|
||||
@ -100,8 +99,13 @@ class RiscoAlarm(AlarmControlPanelEntity):
|
||||
self._partition_id = partition_id
|
||||
self._partition = partition
|
||||
self._code = code
|
||||
self._attr_code_arm_required = options[CONF_CODE_ARM_REQUIRED]
|
||||
self._code_disarm_required = options[CONF_CODE_DISARM_REQUIRED]
|
||||
arm_required = options[CONF_CODE_ARM_REQUIRED]
|
||||
disarm_required = options[CONF_CODE_DISARM_REQUIRED]
|
||||
self._attr_code_arm_required = arm_required
|
||||
self._code_disarm_required = disarm_required
|
||||
self._attr_code_format = (
|
||||
CodeFormat.NUMBER if arm_required or disarm_required else None
|
||||
)
|
||||
self._risco_to_ha = options[CONF_RISCO_STATES_TO_HA]
|
||||
self._ha_to_risco = options[CONF_HA_STATES_TO_RISCO]
|
||||
for state in self._ha_to_risco:
|
||||
|
@ -35,6 +35,7 @@ FIRST_LOCAL_ENTITY_ID = "alarm_control_panel.name_0"
|
||||
SECOND_LOCAL_ENTITY_ID = "alarm_control_panel.name_1"
|
||||
|
||||
CODES_REQUIRED_OPTIONS = {"code_arm_required": True, "code_disarm_required": True}
|
||||
CODES_NOT_REQUIRED_OPTIONS = {"code_arm_required": False, "code_disarm_required": False}
|
||||
TEST_RISCO_TO_HA = {
|
||||
"arm": AlarmControlPanelState.ARMED_AWAY,
|
||||
"partial_arm": AlarmControlPanelState.ARMED_HOME,
|
||||
@ -388,7 +389,8 @@ async def test_cloud_sets_full_custom_mapping(
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"options", [{**CUSTOM_MAPPING_OPTIONS, **CODES_REQUIRED_OPTIONS}]
|
||||
"options",
|
||||
[{**CUSTOM_MAPPING_OPTIONS, **CODES_REQUIRED_OPTIONS}],
|
||||
)
|
||||
async def test_cloud_sets_with_correct_code(
|
||||
hass: HomeAssistant, two_part_cloud_alarm, setup_risco_cloud
|
||||
@ -452,7 +454,58 @@ async def test_cloud_sets_with_correct_code(
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"options", [{**CUSTOM_MAPPING_OPTIONS, **CODES_REQUIRED_OPTIONS}]
|
||||
"options",
|
||||
[{**CUSTOM_MAPPING_OPTIONS, **CODES_NOT_REQUIRED_OPTIONS}],
|
||||
)
|
||||
async def test_cloud_sets_without_code(
|
||||
hass: HomeAssistant, two_part_cloud_alarm, setup_risco_cloud
|
||||
) -> None:
|
||||
"""Test settings the various modes when code is not required."""
|
||||
await _test_cloud_service_call(
|
||||
hass, SERVICE_ALARM_DISARM, "disarm", FIRST_CLOUD_ENTITY_ID, 0
|
||||
)
|
||||
await _test_cloud_service_call(
|
||||
hass, SERVICE_ALARM_DISARM, "disarm", SECOND_CLOUD_ENTITY_ID, 1
|
||||
)
|
||||
await _test_cloud_service_call(
|
||||
hass, SERVICE_ALARM_ARM_AWAY, "arm", FIRST_CLOUD_ENTITY_ID, 0
|
||||
)
|
||||
await _test_cloud_service_call(
|
||||
hass, SERVICE_ALARM_ARM_AWAY, "arm", SECOND_CLOUD_ENTITY_ID, 1
|
||||
)
|
||||
await _test_cloud_service_call(
|
||||
hass, SERVICE_ALARM_ARM_HOME, "partial_arm", FIRST_CLOUD_ENTITY_ID, 0
|
||||
)
|
||||
await _test_cloud_service_call(
|
||||
hass, SERVICE_ALARM_ARM_HOME, "partial_arm", SECOND_CLOUD_ENTITY_ID, 1
|
||||
)
|
||||
await _test_cloud_service_call(
|
||||
hass, SERVICE_ALARM_ARM_NIGHT, "group_arm", FIRST_CLOUD_ENTITY_ID, 0, "C"
|
||||
)
|
||||
await _test_cloud_service_call(
|
||||
hass, SERVICE_ALARM_ARM_NIGHT, "group_arm", SECOND_CLOUD_ENTITY_ID, 1, "C"
|
||||
)
|
||||
with pytest.raises(HomeAssistantError):
|
||||
await _test_cloud_no_service_call(
|
||||
hass,
|
||||
SERVICE_ALARM_ARM_CUSTOM_BYPASS,
|
||||
"partial_arm",
|
||||
FIRST_CLOUD_ENTITY_ID,
|
||||
0,
|
||||
)
|
||||
with pytest.raises(HomeAssistantError):
|
||||
await _test_cloud_no_service_call(
|
||||
hass,
|
||||
SERVICE_ALARM_ARM_CUSTOM_BYPASS,
|
||||
"partial_arm",
|
||||
SECOND_CLOUD_ENTITY_ID,
|
||||
1,
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"options",
|
||||
[{**CUSTOM_MAPPING_OPTIONS, **CODES_REQUIRED_OPTIONS}],
|
||||
)
|
||||
async def test_cloud_sets_with_incorrect_code(
|
||||
hass: HomeAssistant, two_part_cloud_alarm, setup_risco_cloud
|
||||
@ -837,7 +890,8 @@ async def test_local_sets_full_custom_mapping(
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"options", [{**CUSTOM_MAPPING_OPTIONS, **CODES_REQUIRED_OPTIONS}]
|
||||
"options",
|
||||
[{**CUSTOM_MAPPING_OPTIONS, **CODES_REQUIRED_OPTIONS}],
|
||||
)
|
||||
async def test_local_sets_with_correct_code(
|
||||
hass: HomeAssistant, two_part_local_alarm, setup_risco_local
|
||||
@ -931,7 +985,8 @@ async def test_local_sets_with_correct_code(
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"options", [{**CUSTOM_MAPPING_OPTIONS, **CODES_REQUIRED_OPTIONS}]
|
||||
"options",
|
||||
[{**CUSTOM_MAPPING_OPTIONS, **CODES_REQUIRED_OPTIONS}],
|
||||
)
|
||||
async def test_local_sets_with_incorrect_code(
|
||||
hass: HomeAssistant, two_part_local_alarm, setup_risco_local
|
||||
@ -1020,3 +1075,87 @@ async def test_local_sets_with_incorrect_code(
|
||||
two_part_local_alarm[1],
|
||||
**code,
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"options",
|
||||
[{**CUSTOM_MAPPING_OPTIONS, **CODES_NOT_REQUIRED_OPTIONS}],
|
||||
)
|
||||
async def test_local_sets_without_code(
|
||||
hass: HomeAssistant, two_part_local_alarm, setup_risco_local
|
||||
) -> None:
|
||||
"""Test settings the various modes when code is not required."""
|
||||
await _test_local_service_call(
|
||||
hass,
|
||||
SERVICE_ALARM_DISARM,
|
||||
"disarm",
|
||||
FIRST_LOCAL_ENTITY_ID,
|
||||
two_part_local_alarm[0],
|
||||
)
|
||||
await _test_local_service_call(
|
||||
hass,
|
||||
SERVICE_ALARM_DISARM,
|
||||
"disarm",
|
||||
SECOND_LOCAL_ENTITY_ID,
|
||||
two_part_local_alarm[1],
|
||||
)
|
||||
await _test_local_service_call(
|
||||
hass,
|
||||
SERVICE_ALARM_ARM_AWAY,
|
||||
"arm",
|
||||
FIRST_LOCAL_ENTITY_ID,
|
||||
two_part_local_alarm[0],
|
||||
)
|
||||
await _test_local_service_call(
|
||||
hass,
|
||||
SERVICE_ALARM_ARM_AWAY,
|
||||
"arm",
|
||||
SECOND_LOCAL_ENTITY_ID,
|
||||
two_part_local_alarm[1],
|
||||
)
|
||||
await _test_local_service_call(
|
||||
hass,
|
||||
SERVICE_ALARM_ARM_HOME,
|
||||
"partial_arm",
|
||||
FIRST_LOCAL_ENTITY_ID,
|
||||
two_part_local_alarm[0],
|
||||
)
|
||||
await _test_local_service_call(
|
||||
hass,
|
||||
SERVICE_ALARM_ARM_HOME,
|
||||
"partial_arm",
|
||||
SECOND_LOCAL_ENTITY_ID,
|
||||
two_part_local_alarm[1],
|
||||
)
|
||||
await _test_local_service_call(
|
||||
hass,
|
||||
SERVICE_ALARM_ARM_NIGHT,
|
||||
"group_arm",
|
||||
FIRST_LOCAL_ENTITY_ID,
|
||||
two_part_local_alarm[0],
|
||||
"C",
|
||||
)
|
||||
await _test_local_service_call(
|
||||
hass,
|
||||
SERVICE_ALARM_ARM_NIGHT,
|
||||
"group_arm",
|
||||
SECOND_LOCAL_ENTITY_ID,
|
||||
two_part_local_alarm[1],
|
||||
"C",
|
||||
)
|
||||
with pytest.raises(HomeAssistantError):
|
||||
await _test_local_no_service_call(
|
||||
hass,
|
||||
SERVICE_ALARM_ARM_CUSTOM_BYPASS,
|
||||
"partial_arm",
|
||||
FIRST_LOCAL_ENTITY_ID,
|
||||
two_part_local_alarm[0],
|
||||
)
|
||||
with pytest.raises(HomeAssistantError):
|
||||
await _test_local_no_service_call(
|
||||
hass,
|
||||
SERVICE_ALARM_ARM_CUSTOM_BYPASS,
|
||||
"partial_arm",
|
||||
SECOND_LOCAL_ENTITY_ID,
|
||||
two_part_local_alarm[1],
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user