Remove if/else from modbus test cases (#48514)
This commit is contained in:
parent
d4d8f74858
commit
64d5dd1f6b
7 changed files with 255 additions and 107 deletions
|
@ -31,57 +31,138 @@ from homeassistant.const import (
|
|||
from .conftest import base_config_test, base_test
|
||||
|
||||
|
||||
@pytest.mark.parametrize("do_discovery", [False, True])
|
||||
@pytest.mark.parametrize("do_options", [False, True])
|
||||
@pytest.mark.parametrize(
|
||||
"read_type", [CALL_TYPE_REGISTER_HOLDING, CALL_TYPE_REGISTER_INPUT, CALL_TYPE_COIL]
|
||||
"array_type, do_config",
|
||||
[
|
||||
(
|
||||
None,
|
||||
{
|
||||
CONF_ADDRESS: 1234,
|
||||
},
|
||||
),
|
||||
(
|
||||
None,
|
||||
{
|
||||
CONF_ADDRESS: 1234,
|
||||
},
|
||||
),
|
||||
(
|
||||
None,
|
||||
{
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_INPUT_TYPE: CALL_TYPE_COIL,
|
||||
},
|
||||
),
|
||||
(
|
||||
None,
|
||||
{
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SLAVE: 1,
|
||||
CONF_STATE_OFF: 0,
|
||||
CONF_STATE_ON: 1,
|
||||
CONF_VERIFY_REGISTER: 1235,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
CONF_COMMAND_ON: 0x01,
|
||||
CONF_DEVICE_CLASS: "switch",
|
||||
CONF_INPUT_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
},
|
||||
),
|
||||
(
|
||||
None,
|
||||
{
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SLAVE: 1,
|
||||
CONF_STATE_OFF: 0,
|
||||
CONF_STATE_ON: 1,
|
||||
CONF_VERIFY_REGISTER: 1235,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
CONF_COMMAND_ON: 0x01,
|
||||
CONF_DEVICE_CLASS: "switch",
|
||||
CONF_INPUT_TYPE: CALL_TYPE_REGISTER_INPUT,
|
||||
},
|
||||
),
|
||||
(
|
||||
None,
|
||||
{
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_INPUT_TYPE: CALL_TYPE_COIL,
|
||||
CONF_SLAVE: 1,
|
||||
CONF_DEVICE_CLASS: "switch",
|
||||
CONF_INPUT_TYPE: CALL_TYPE_COIL,
|
||||
},
|
||||
),
|
||||
(
|
||||
CONF_REGISTERS,
|
||||
{
|
||||
CONF_REGISTER: 1234,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
CONF_COMMAND_ON: 0x01,
|
||||
},
|
||||
),
|
||||
(
|
||||
CONF_REGISTERS,
|
||||
{
|
||||
CONF_REGISTER: 1234,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
CONF_COMMAND_ON: 0x01,
|
||||
},
|
||||
),
|
||||
(
|
||||
CONF_COILS,
|
||||
{
|
||||
CALL_TYPE_COIL: 1234,
|
||||
CONF_SLAVE: 1,
|
||||
},
|
||||
),
|
||||
(
|
||||
CONF_REGISTERS,
|
||||
{
|
||||
CONF_REGISTER: 1234,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
CONF_COMMAND_ON: 0x01,
|
||||
CONF_SLAVE: 1,
|
||||
CONF_STATE_OFF: 0,
|
||||
CONF_STATE_ON: 1,
|
||||
CONF_VERIFY_REGISTER: 1235,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
CONF_COMMAND_ON: 0x01,
|
||||
CONF_VERIFY_STATE: True,
|
||||
CONF_REGISTER_TYPE: CALL_TYPE_REGISTER_INPUT,
|
||||
},
|
||||
),
|
||||
(
|
||||
CONF_REGISTERS,
|
||||
{
|
||||
CONF_REGISTER: 1234,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
CONF_COMMAND_ON: 0x01,
|
||||
CONF_SLAVE: 1,
|
||||
CONF_STATE_OFF: 0,
|
||||
CONF_STATE_ON: 1,
|
||||
CONF_VERIFY_REGISTER: 1235,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
CONF_COMMAND_ON: 0x01,
|
||||
CONF_VERIFY_STATE: True,
|
||||
CONF_REGISTER_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
},
|
||||
),
|
||||
(
|
||||
CONF_COILS,
|
||||
{
|
||||
CALL_TYPE_COIL: 1234,
|
||||
CONF_SLAVE: 1,
|
||||
},
|
||||
),
|
||||
],
|
||||
)
|
||||
async def test_config_switch(hass, do_discovery, do_options, read_type):
|
||||
async def test_config_switch(hass, array_type, do_config):
|
||||
"""Run test for switch."""
|
||||
device_name = "test_switch"
|
||||
|
||||
device_config = {
|
||||
CONF_NAME: device_name,
|
||||
**do_config,
|
||||
}
|
||||
if not do_discovery:
|
||||
if read_type == CALL_TYPE_COIL:
|
||||
array_type = CONF_COILS
|
||||
device_config[CALL_TYPE_COIL] = 1234
|
||||
device_config[CONF_SLAVE] = 1
|
||||
else:
|
||||
array_type = CONF_REGISTERS
|
||||
device_config[CONF_REGISTER] = 1234
|
||||
device_config[CONF_COMMAND_OFF] = 0x00
|
||||
device_config[CONF_COMMAND_ON] = 0x01
|
||||
else:
|
||||
array_type = None
|
||||
device_config[CONF_ADDRESS] = 1234
|
||||
if read_type == CALL_TYPE_COIL:
|
||||
device_config[CONF_INPUT_TYPE] = CALL_TYPE_COIL
|
||||
|
||||
if do_options:
|
||||
device_config[CONF_SLAVE] = 1
|
||||
if read_type != CALL_TYPE_COIL:
|
||||
device_config.update(
|
||||
{
|
||||
CONF_STATE_OFF: 0,
|
||||
CONF_STATE_ON: 1,
|
||||
CONF_VERIFY_REGISTER: 1235,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
CONF_COMMAND_ON: 0x01,
|
||||
}
|
||||
)
|
||||
if do_discovery:
|
||||
device_config.update(
|
||||
{
|
||||
CONF_DEVICE_CLASS: "switch",
|
||||
CONF_INPUT_TYPE: read_type,
|
||||
}
|
||||
)
|
||||
else:
|
||||
if read_type != CALL_TYPE_COIL:
|
||||
device_config[CONF_VERIFY_STATE] = True
|
||||
device_config[CONF_REGISTER_TYPE] = read_type
|
||||
|
||||
await base_config_test(
|
||||
hass,
|
||||
|
@ -90,7 +171,7 @@ async def test_config_switch(hass, do_discovery, do_options, read_type):
|
|||
SWITCH_DOMAIN,
|
||||
CONF_SWITCHES,
|
||||
array_type,
|
||||
method_discovery=do_discovery,
|
||||
method_discovery=(array_type is None),
|
||||
)
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue