mirror of
https://github.com/home-assistant/core.git
synced 2025-07-22 12:47:08 +00:00
set common test entity name. (#54697)
This commit is contained in:
parent
8bf79d61ee
commit
71b0f6d095
@ -7,7 +7,11 @@ from unittest import mock
|
||||
from pymodbus.exceptions import ModbusException
|
||||
import pytest
|
||||
|
||||
from homeassistant.components.modbus.const import DEFAULT_HUB, MODBUS_DOMAIN as DOMAIN
|
||||
from homeassistant.components.modbus.const import (
|
||||
CONF_TCP,
|
||||
DEFAULT_HUB,
|
||||
MODBUS_DOMAIN as DOMAIN,
|
||||
)
|
||||
from homeassistant.const import (
|
||||
CONF_HOST,
|
||||
CONF_NAME,
|
||||
@ -22,6 +26,11 @@ import homeassistant.util.dt as dt_util
|
||||
from tests.common import async_fire_time_changed, mock_restore_cache
|
||||
|
||||
TEST_MODBUS_NAME = "modbusTest"
|
||||
TEST_ENTITY_NAME = "test_entity"
|
||||
TEST_MODBUS_HOST = "modbusHost"
|
||||
TEST_PORT_TCP = 5501
|
||||
TEST_PORT_SERIAL = "usb01"
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@ -62,9 +71,9 @@ async def mock_modbus(hass, caplog, request, do_config):
|
||||
config = {
|
||||
DOMAIN: [
|
||||
{
|
||||
CONF_TYPE: "tcp",
|
||||
CONF_HOST: "modbusTestHost",
|
||||
CONF_PORT: 5501,
|
||||
CONF_TYPE: CONF_TCP,
|
||||
CONF_HOST: TEST_MODBUS_HOST,
|
||||
CONF_PORT: TEST_PORT_TCP,
|
||||
CONF_NAME: TEST_MODBUS_NAME,
|
||||
**do_config,
|
||||
}
|
||||
@ -122,9 +131,9 @@ async def base_test(
|
||||
config_modbus = {
|
||||
DOMAIN: {
|
||||
CONF_NAME: DEFAULT_HUB,
|
||||
CONF_TYPE: "tcp",
|
||||
CONF_HOST: "modbusTest",
|
||||
CONF_PORT: 5001,
|
||||
CONF_TYPE: CONF_TCP,
|
||||
CONF_HOST: TEST_MODBUS_HOST,
|
||||
CONF_PORT: TEST_PORT_TCP,
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -20,10 +20,9 @@ from homeassistant.const import (
|
||||
)
|
||||
from homeassistant.core import State
|
||||
|
||||
from .conftest import ReadResult, base_test
|
||||
from .conftest import TEST_ENTITY_NAME, ReadResult, base_test
|
||||
|
||||
SENSOR_NAME = "test_binary_sensor"
|
||||
ENTITY_ID = f"{SENSOR_DOMAIN}.{SENSOR_NAME}"
|
||||
ENTITY_ID = f"{SENSOR_DOMAIN}.{TEST_ENTITY_NAME}"
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
@ -32,7 +31,7 @@ ENTITY_ID = f"{SENSOR_DOMAIN}.{SENSOR_NAME}"
|
||||
{
|
||||
CONF_BINARY_SENSORS: [
|
||||
{
|
||||
CONF_NAME: SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 51,
|
||||
}
|
||||
]
|
||||
@ -40,7 +39,7 @@ ENTITY_ID = f"{SENSOR_DOMAIN}.{SENSOR_NAME}"
|
||||
{
|
||||
CONF_BINARY_SENSORS: [
|
||||
{
|
||||
CONF_NAME: SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 51,
|
||||
CONF_SLAVE: 10,
|
||||
CONF_INPUT_TYPE: CALL_TYPE_DISCRETE,
|
||||
@ -89,8 +88,8 @@ async def test_all_binary_sensor(hass, do_type, regs, expected):
|
||||
"""Run test for given config."""
|
||||
state = await base_test(
|
||||
hass,
|
||||
{CONF_NAME: SENSOR_NAME, CONF_ADDRESS: 1234, CONF_INPUT_TYPE: do_type},
|
||||
SENSOR_NAME,
|
||||
{CONF_NAME: TEST_ENTITY_NAME, CONF_ADDRESS: 1234, CONF_INPUT_TYPE: do_type},
|
||||
TEST_ENTITY_NAME,
|
||||
SENSOR_DOMAIN,
|
||||
CONF_BINARY_SENSORS,
|
||||
None,
|
||||
@ -108,7 +107,7 @@ async def test_all_binary_sensor(hass, do_type, regs, expected):
|
||||
{
|
||||
CONF_BINARY_SENSORS: [
|
||||
{
|
||||
CONF_NAME: SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_INPUT_TYPE: CALL_TYPE_COIL,
|
||||
}
|
||||
@ -144,7 +143,7 @@ async def test_service_binary_sensor_update(hass, mock_modbus, mock_ha):
|
||||
{
|
||||
CONF_BINARY_SENSORS: [
|
||||
{
|
||||
CONF_NAME: SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 51,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
}
|
||||
|
@ -22,10 +22,9 @@ from homeassistant.const import (
|
||||
)
|
||||
from homeassistant.core import State
|
||||
|
||||
from .conftest import ReadResult, base_test
|
||||
from .conftest import TEST_ENTITY_NAME, ReadResult, base_test
|
||||
|
||||
CLIMATE_NAME = "test_climate"
|
||||
ENTITY_ID = f"{CLIMATE_DOMAIN}.{CLIMATE_NAME}"
|
||||
ENTITY_ID = f"{CLIMATE_DOMAIN}.{TEST_ENTITY_NAME}"
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
@ -34,7 +33,7 @@ ENTITY_ID = f"{CLIMATE_DOMAIN}.{CLIMATE_NAME}"
|
||||
{
|
||||
CONF_CLIMATES: [
|
||||
{
|
||||
CONF_NAME: CLIMATE_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_TARGET_TEMP: 117,
|
||||
CONF_ADDRESS: 117,
|
||||
CONF_SLAVE: 10,
|
||||
@ -44,7 +43,7 @@ ENTITY_ID = f"{CLIMATE_DOMAIN}.{CLIMATE_NAME}"
|
||||
{
|
||||
CONF_CLIMATES: [
|
||||
{
|
||||
CONF_NAME: CLIMATE_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_TARGET_TEMP: 117,
|
||||
CONF_ADDRESS: 117,
|
||||
CONF_SLAVE: 10,
|
||||
@ -71,18 +70,17 @@ async def test_config_climate(hass, mock_modbus):
|
||||
)
|
||||
async def test_temperature_climate(hass, regs, expected):
|
||||
"""Run test for given config."""
|
||||
CLIMATE_NAME = "modbus_test_climate"
|
||||
return
|
||||
state = await base_test(
|
||||
hass,
|
||||
{
|
||||
CONF_NAME: CLIMATE_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_SLAVE: 1,
|
||||
CONF_TARGET_TEMP: 117,
|
||||
CONF_ADDRESS: 117,
|
||||
CONF_COUNT: 2,
|
||||
},
|
||||
CLIMATE_NAME,
|
||||
TEST_ENTITY_NAME,
|
||||
CLIMATE_DOMAIN,
|
||||
CONF_CLIMATES,
|
||||
None,
|
||||
@ -100,7 +98,7 @@ async def test_temperature_climate(hass, regs, expected):
|
||||
{
|
||||
CONF_CLIMATES: [
|
||||
{
|
||||
CONF_NAME: CLIMATE_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_TARGET_TEMP: 117,
|
||||
CONF_ADDRESS: 117,
|
||||
CONF_SLAVE: 10,
|
||||
@ -127,7 +125,7 @@ async def test_service_climate_update(hass, mock_modbus, mock_ha):
|
||||
{
|
||||
CONF_CLIMATES: [
|
||||
{
|
||||
CONF_NAME: CLIMATE_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_TARGET_TEMP: 117,
|
||||
CONF_ADDRESS: 117,
|
||||
CONF_SLAVE: 10,
|
||||
@ -142,7 +140,7 @@ async def test_service_climate_update(hass, mock_modbus, mock_ha):
|
||||
{
|
||||
CONF_CLIMATES: [
|
||||
{
|
||||
CONF_NAME: CLIMATE_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_TARGET_TEMP: 117,
|
||||
CONF_ADDRESS: 117,
|
||||
CONF_SLAVE: 10,
|
||||
@ -157,7 +155,7 @@ async def test_service_climate_update(hass, mock_modbus, mock_ha):
|
||||
{
|
||||
CONF_CLIMATES: [
|
||||
{
|
||||
CONF_NAME: CLIMATE_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_TARGET_TEMP: 117,
|
||||
CONF_ADDRESS: 117,
|
||||
CONF_SLAVE: 10,
|
||||
@ -172,7 +170,7 @@ async def test_service_climate_update(hass, mock_modbus, mock_ha):
|
||||
{
|
||||
CONF_CLIMATES: [
|
||||
{
|
||||
CONF_NAME: CLIMATE_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_TARGET_TEMP: 117,
|
||||
CONF_ADDRESS: 117,
|
||||
CONF_SLAVE: 10,
|
||||
@ -214,7 +212,7 @@ test_value.attributes = {ATTR_TEMPERATURE: 37}
|
||||
{
|
||||
CONF_CLIMATES: [
|
||||
{
|
||||
CONF_NAME: CLIMATE_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_TARGET_TEMP: 117,
|
||||
CONF_ADDRESS: 117,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
|
@ -29,10 +29,9 @@ from homeassistant.const import (
|
||||
)
|
||||
from homeassistant.core import State
|
||||
|
||||
from .conftest import ReadResult, base_test
|
||||
from .conftest import TEST_ENTITY_NAME, ReadResult, base_test
|
||||
|
||||
COVER_NAME = "test_cover"
|
||||
ENTITY_ID = f"{COVER_DOMAIN}.{COVER_NAME}"
|
||||
ENTITY_ID = f"{COVER_DOMAIN}.{TEST_ENTITY_NAME}"
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
@ -41,7 +40,7 @@ ENTITY_ID = f"{COVER_DOMAIN}.{COVER_NAME}"
|
||||
{
|
||||
CONF_COVERS: [
|
||||
{
|
||||
CONF_NAME: COVER_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_INPUT_TYPE: CALL_TYPE_COIL,
|
||||
}
|
||||
@ -50,7 +49,7 @@ ENTITY_ID = f"{COVER_DOMAIN}.{COVER_NAME}"
|
||||
{
|
||||
CONF_COVERS: [
|
||||
{
|
||||
CONF_NAME: COVER_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_INPUT_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
CONF_SLAVE: 10,
|
||||
@ -95,12 +94,12 @@ async def test_coil_cover(hass, regs, expected):
|
||||
state = await base_test(
|
||||
hass,
|
||||
{
|
||||
CONF_NAME: COVER_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_INPUT_TYPE: CALL_TYPE_COIL,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SLAVE: 1,
|
||||
},
|
||||
COVER_NAME,
|
||||
TEST_ENTITY_NAME,
|
||||
COVER_DOMAIN,
|
||||
CONF_COVERS,
|
||||
None,
|
||||
@ -142,11 +141,11 @@ async def test_register_cover(hass, regs, expected):
|
||||
state = await base_test(
|
||||
hass,
|
||||
{
|
||||
CONF_NAME: COVER_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SLAVE: 1,
|
||||
},
|
||||
COVER_NAME,
|
||||
TEST_ENTITY_NAME,
|
||||
COVER_DOMAIN,
|
||||
CONF_COVERS,
|
||||
None,
|
||||
@ -164,7 +163,7 @@ async def test_register_cover(hass, regs, expected):
|
||||
{
|
||||
CONF_COVERS: [
|
||||
{
|
||||
CONF_NAME: COVER_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_STATUS_REGISTER_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
}
|
||||
@ -201,7 +200,7 @@ async def test_service_cover_update(hass, mock_modbus, mock_ha):
|
||||
{
|
||||
CONF_COVERS: [
|
||||
{
|
||||
CONF_NAME: COVER_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_INPUT_TYPE: CALL_TYPE_COIL,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_STATE_OPEN: 1,
|
||||
@ -228,13 +227,13 @@ async def test_restore_state_cover(hass, mock_test_state, mock_modbus):
|
||||
{
|
||||
CONF_COVERS: [
|
||||
{
|
||||
CONF_NAME: COVER_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_STATUS_REGISTER_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
},
|
||||
{
|
||||
CONF_NAME: f"{COVER_NAME}2",
|
||||
CONF_NAME: f"{TEST_ENTITY_NAME}2",
|
||||
CONF_INPUT_TYPE: CALL_TYPE_COIL,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
|
@ -12,6 +12,7 @@ from homeassistant.components.modbus.const import (
|
||||
CONF_INPUT_TYPE,
|
||||
CONF_STATE_OFF,
|
||||
CONF_STATE_ON,
|
||||
CONF_TCP,
|
||||
CONF_VERIFY,
|
||||
CONF_WRITE_TYPE,
|
||||
MODBUS_DOMAIN,
|
||||
@ -33,10 +34,15 @@ from homeassistant.const import (
|
||||
from homeassistant.core import State
|
||||
from homeassistant.setup import async_setup_component
|
||||
|
||||
from .conftest import ReadResult, base_test
|
||||
from .conftest import (
|
||||
TEST_ENTITY_NAME,
|
||||
TEST_MODBUS_HOST,
|
||||
TEST_PORT_TCP,
|
||||
ReadResult,
|
||||
base_test,
|
||||
)
|
||||
|
||||
FAN_NAME = "test_fan"
|
||||
ENTITY_ID = f"{FAN_DOMAIN}.{FAN_NAME}"
|
||||
ENTITY_ID = f"{FAN_DOMAIN}.{TEST_ENTITY_NAME}"
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
@ -45,7 +51,7 @@ ENTITY_ID = f"{FAN_DOMAIN}.{FAN_NAME}"
|
||||
{
|
||||
CONF_FANS: [
|
||||
{
|
||||
CONF_NAME: FAN_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
}
|
||||
]
|
||||
@ -53,7 +59,7 @@ ENTITY_ID = f"{FAN_DOMAIN}.{FAN_NAME}"
|
||||
{
|
||||
CONF_FANS: [
|
||||
{
|
||||
CONF_NAME: FAN_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_WRITE_TYPE: CALL_TYPE_COIL,
|
||||
}
|
||||
@ -62,7 +68,7 @@ ENTITY_ID = f"{FAN_DOMAIN}.{FAN_NAME}"
|
||||
{
|
||||
CONF_FANS: [
|
||||
{
|
||||
CONF_NAME: FAN_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SLAVE: 1,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
@ -79,7 +85,7 @@ ENTITY_ID = f"{FAN_DOMAIN}.{FAN_NAME}"
|
||||
{
|
||||
CONF_FANS: [
|
||||
{
|
||||
CONF_NAME: FAN_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SLAVE: 1,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
@ -96,7 +102,7 @@ ENTITY_ID = f"{FAN_DOMAIN}.{FAN_NAME}"
|
||||
{
|
||||
CONF_FANS: [
|
||||
{
|
||||
CONF_NAME: FAN_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SLAVE: 1,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
@ -113,7 +119,7 @@ ENTITY_ID = f"{FAN_DOMAIN}.{FAN_NAME}"
|
||||
{
|
||||
CONF_FANS: [
|
||||
{
|
||||
CONF_NAME: FAN_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SLAVE: 1,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
@ -165,13 +171,13 @@ async def test_all_fan(hass, call_type, regs, verify, expected):
|
||||
state = await base_test(
|
||||
hass,
|
||||
{
|
||||
CONF_NAME: FAN_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SLAVE: 1,
|
||||
CONF_WRITE_TYPE: call_type,
|
||||
**verify,
|
||||
},
|
||||
FAN_NAME,
|
||||
TEST_ENTITY_NAME,
|
||||
FAN_DOMAIN,
|
||||
CONF_FANS,
|
||||
None,
|
||||
@ -194,7 +200,7 @@ async def test_all_fan(hass, call_type, regs, verify, expected):
|
||||
{
|
||||
CONF_FANS: [
|
||||
{
|
||||
CONF_NAME: FAN_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
}
|
||||
@ -210,21 +216,21 @@ async def test_restore_state_fan(hass, mock_test_state, mock_modbus):
|
||||
async def test_fan_service_turn(hass, caplog, mock_pymodbus):
|
||||
"""Run test for service turn_on/turn_off."""
|
||||
|
||||
ENTITY_ID2 = f"{FAN_DOMAIN}.{FAN_NAME}2"
|
||||
ENTITY_ID2 = f"{FAN_DOMAIN}.{TEST_ENTITY_NAME}2"
|
||||
config = {
|
||||
MODBUS_DOMAIN: {
|
||||
CONF_TYPE: "tcp",
|
||||
CONF_HOST: "modbusTestHost",
|
||||
CONF_PORT: 5501,
|
||||
CONF_TYPE: CONF_TCP,
|
||||
CONF_HOST: TEST_MODBUS_HOST,
|
||||
CONF_PORT: TEST_PORT_TCP,
|
||||
CONF_FANS: [
|
||||
{
|
||||
CONF_NAME: FAN_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 17,
|
||||
CONF_WRITE_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
},
|
||||
{
|
||||
CONF_NAME: f"{FAN_NAME}2",
|
||||
CONF_NAME: f"{TEST_ENTITY_NAME}2",
|
||||
CONF_ADDRESS: 17,
|
||||
CONF_WRITE_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
@ -283,7 +289,7 @@ async def test_fan_service_turn(hass, caplog, mock_pymodbus):
|
||||
{
|
||||
CONF_FANS: [
|
||||
{
|
||||
CONF_NAME: FAN_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_WRITE_TYPE: CALL_TYPE_COIL,
|
||||
CONF_VERIFY: {},
|
||||
|
@ -42,10 +42,14 @@ from homeassistant.components.modbus.const import (
|
||||
CONF_INPUT_TYPE,
|
||||
CONF_MSG_WAIT,
|
||||
CONF_PARITY,
|
||||
CONF_RTUOVERTCP,
|
||||
CONF_SERIAL,
|
||||
CONF_STOPBITS,
|
||||
CONF_SWAP,
|
||||
CONF_SWAP_BYTE,
|
||||
CONF_SWAP_WORD,
|
||||
CONF_TCP,
|
||||
CONF_UDP,
|
||||
DATA_TYPE_CUSTOM,
|
||||
DATA_TYPE_INT,
|
||||
DATA_TYPE_STRING,
|
||||
@ -79,15 +83,17 @@ from homeassistant.const import (
|
||||
from homeassistant.setup import async_setup_component
|
||||
import homeassistant.util.dt as dt_util
|
||||
|
||||
from .conftest import ReadResult
|
||||
from .conftest import (
|
||||
TEST_ENTITY_NAME,
|
||||
TEST_MODBUS_HOST,
|
||||
TEST_MODBUS_NAME,
|
||||
TEST_PORT_SERIAL,
|
||||
TEST_PORT_TCP,
|
||||
ReadResult,
|
||||
)
|
||||
|
||||
from tests.common import async_fire_time_changed
|
||||
|
||||
TEST_SENSOR_NAME = "testSensor"
|
||||
TEST_ENTITY_ID = f"{SENSOR_DOMAIN}.{TEST_SENSOR_NAME}"
|
||||
TEST_HOST = "modbusTestHost"
|
||||
TEST_MODBUS_NAME = "modbusTest"
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
async def mock_modbus_with_pymodbus(hass, caplog, do_config, mock_pymodbus):
|
||||
@ -128,17 +134,17 @@ async def test_number_validator():
|
||||
"do_config",
|
||||
[
|
||||
{
|
||||
CONF_NAME: TEST_SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_COUNT: 2,
|
||||
CONF_DATA_TYPE: DATA_TYPE_STRING,
|
||||
},
|
||||
{
|
||||
CONF_NAME: TEST_SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_COUNT: 2,
|
||||
CONF_DATA_TYPE: DATA_TYPE_INT,
|
||||
},
|
||||
{
|
||||
CONF_NAME: TEST_SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_COUNT: 2,
|
||||
CONF_DATA_TYPE: DATA_TYPE_INT,
|
||||
CONF_SWAP: CONF_SWAP_BYTE,
|
||||
@ -157,29 +163,29 @@ async def test_ok_struct_validator(do_config):
|
||||
"do_config",
|
||||
[
|
||||
{
|
||||
CONF_NAME: TEST_SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_COUNT: 8,
|
||||
CONF_DATA_TYPE: DATA_TYPE_INT,
|
||||
},
|
||||
{
|
||||
CONF_NAME: TEST_SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_COUNT: 8,
|
||||
CONF_DATA_TYPE: DATA_TYPE_CUSTOM,
|
||||
},
|
||||
{
|
||||
CONF_NAME: TEST_SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_COUNT: 8,
|
||||
CONF_DATA_TYPE: DATA_TYPE_CUSTOM,
|
||||
CONF_STRUCTURE: "no good",
|
||||
},
|
||||
{
|
||||
CONF_NAME: TEST_SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_COUNT: 20,
|
||||
CONF_DATA_TYPE: DATA_TYPE_CUSTOM,
|
||||
CONF_STRUCTURE: ">f",
|
||||
},
|
||||
{
|
||||
CONF_NAME: TEST_SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_COUNT: 1,
|
||||
CONF_DATA_TYPE: DATA_TYPE_CUSTOM,
|
||||
CONF_STRUCTURE: ">f",
|
||||
@ -200,60 +206,60 @@ async def test_exception_struct_validator(do_config):
|
||||
"do_config",
|
||||
[
|
||||
{
|
||||
CONF_TYPE: "tcp",
|
||||
CONF_HOST: TEST_HOST,
|
||||
CONF_PORT: 5501,
|
||||
CONF_TYPE: CONF_TCP,
|
||||
CONF_HOST: TEST_MODBUS_HOST,
|
||||
CONF_PORT: TEST_PORT_TCP,
|
||||
},
|
||||
{
|
||||
CONF_TYPE: "tcp",
|
||||
CONF_HOST: TEST_HOST,
|
||||
CONF_PORT: 5501,
|
||||
CONF_TYPE: CONF_TCP,
|
||||
CONF_HOST: TEST_MODBUS_HOST,
|
||||
CONF_PORT: TEST_PORT_TCP,
|
||||
CONF_NAME: TEST_MODBUS_NAME,
|
||||
CONF_TIMEOUT: 30,
|
||||
CONF_DELAY: 10,
|
||||
},
|
||||
{
|
||||
CONF_TYPE: "udp",
|
||||
CONF_HOST: TEST_HOST,
|
||||
CONF_PORT: 5501,
|
||||
CONF_TYPE: CONF_UDP,
|
||||
CONF_HOST: TEST_MODBUS_HOST,
|
||||
CONF_PORT: TEST_PORT_TCP,
|
||||
},
|
||||
{
|
||||
CONF_TYPE: "udp",
|
||||
CONF_HOST: TEST_HOST,
|
||||
CONF_PORT: 5501,
|
||||
CONF_TYPE: CONF_UDP,
|
||||
CONF_HOST: TEST_MODBUS_HOST,
|
||||
CONF_PORT: TEST_PORT_TCP,
|
||||
CONF_NAME: TEST_MODBUS_NAME,
|
||||
CONF_TIMEOUT: 30,
|
||||
CONF_DELAY: 10,
|
||||
},
|
||||
{
|
||||
CONF_TYPE: "rtuovertcp",
|
||||
CONF_HOST: TEST_HOST,
|
||||
CONF_PORT: 5501,
|
||||
CONF_TYPE: CONF_RTUOVERTCP,
|
||||
CONF_HOST: TEST_MODBUS_HOST,
|
||||
CONF_PORT: TEST_PORT_TCP,
|
||||
},
|
||||
{
|
||||
CONF_TYPE: "rtuovertcp",
|
||||
CONF_HOST: TEST_HOST,
|
||||
CONF_PORT: 5501,
|
||||
CONF_TYPE: CONF_RTUOVERTCP,
|
||||
CONF_HOST: TEST_MODBUS_HOST,
|
||||
CONF_PORT: TEST_PORT_TCP,
|
||||
CONF_NAME: TEST_MODBUS_NAME,
|
||||
CONF_TIMEOUT: 30,
|
||||
CONF_DELAY: 10,
|
||||
},
|
||||
{
|
||||
CONF_TYPE: "serial",
|
||||
CONF_TYPE: CONF_SERIAL,
|
||||
CONF_BAUDRATE: 9600,
|
||||
CONF_BYTESIZE: 8,
|
||||
CONF_METHOD: "rtu",
|
||||
CONF_PORT: "usb01",
|
||||
CONF_PORT: TEST_PORT_SERIAL,
|
||||
CONF_PARITY: "E",
|
||||
CONF_STOPBITS: 1,
|
||||
CONF_MSG_WAIT: 100,
|
||||
},
|
||||
{
|
||||
CONF_TYPE: "serial",
|
||||
CONF_TYPE: CONF_SERIAL,
|
||||
CONF_BAUDRATE: 9600,
|
||||
CONF_BYTESIZE: 8,
|
||||
CONF_METHOD: "rtu",
|
||||
CONF_PORT: "usb01",
|
||||
CONF_PORT: TEST_PORT_SERIAL,
|
||||
CONF_PARITY: "E",
|
||||
CONF_STOPBITS: 1,
|
||||
CONF_NAME: TEST_MODBUS_NAME,
|
||||
@ -261,43 +267,43 @@ async def test_exception_struct_validator(do_config):
|
||||
CONF_DELAY: 10,
|
||||
},
|
||||
{
|
||||
CONF_TYPE: "tcp",
|
||||
CONF_HOST: TEST_HOST,
|
||||
CONF_PORT: 5501,
|
||||
CONF_TYPE: CONF_TCP,
|
||||
CONF_HOST: TEST_MODBUS_HOST,
|
||||
CONF_PORT: TEST_PORT_TCP,
|
||||
CONF_DELAY: 5,
|
||||
},
|
||||
[
|
||||
{
|
||||
CONF_TYPE: "tcp",
|
||||
CONF_HOST: TEST_HOST,
|
||||
CONF_PORT: 5501,
|
||||
CONF_TYPE: CONF_TCP,
|
||||
CONF_HOST: TEST_MODBUS_HOST,
|
||||
CONF_PORT: TEST_PORT_TCP,
|
||||
CONF_NAME: TEST_MODBUS_NAME,
|
||||
},
|
||||
{
|
||||
CONF_TYPE: "tcp",
|
||||
CONF_HOST: TEST_HOST,
|
||||
CONF_PORT: 5501,
|
||||
CONF_NAME: TEST_MODBUS_NAME + "2",
|
||||
CONF_TYPE: CONF_TCP,
|
||||
CONF_HOST: TEST_MODBUS_HOST,
|
||||
CONF_PORT: TEST_PORT_TCP,
|
||||
CONF_NAME: f"{TEST_MODBUS_NAME}2",
|
||||
},
|
||||
{
|
||||
CONF_TYPE: "serial",
|
||||
CONF_TYPE: CONF_SERIAL,
|
||||
CONF_BAUDRATE: 9600,
|
||||
CONF_BYTESIZE: 8,
|
||||
CONF_METHOD: "rtu",
|
||||
CONF_PORT: "usb01",
|
||||
CONF_PORT: TEST_PORT_SERIAL,
|
||||
CONF_PARITY: "E",
|
||||
CONF_STOPBITS: 1,
|
||||
CONF_NAME: TEST_MODBUS_NAME + "3",
|
||||
CONF_NAME: f"{TEST_MODBUS_NAME}3",
|
||||
},
|
||||
],
|
||||
{
|
||||
# Special test for scan_interval validator with scan_interval: 0
|
||||
CONF_TYPE: "tcp",
|
||||
CONF_HOST: TEST_HOST,
|
||||
CONF_PORT: 5501,
|
||||
CONF_TYPE: CONF_TCP,
|
||||
CONF_HOST: TEST_MODBUS_HOST,
|
||||
CONF_PORT: TEST_PORT_TCP,
|
||||
CONF_SENSORS: [
|
||||
{
|
||||
CONF_NAME: TEST_SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 117,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
}
|
||||
@ -320,11 +326,11 @@ SERVICE = "service"
|
||||
[
|
||||
{
|
||||
CONF_NAME: TEST_MODBUS_NAME,
|
||||
CONF_TYPE: "serial",
|
||||
CONF_TYPE: CONF_SERIAL,
|
||||
CONF_BAUDRATE: 9600,
|
||||
CONF_BYTESIZE: 8,
|
||||
CONF_METHOD: "rtu",
|
||||
CONF_PORT: "usb01",
|
||||
CONF_PORT: TEST_PORT_SERIAL,
|
||||
CONF_PARITY: "E",
|
||||
CONF_STOPBITS: 1,
|
||||
},
|
||||
@ -425,14 +431,14 @@ async def mock_modbus_read_pymodbus(
|
||||
config = {
|
||||
DOMAIN: [
|
||||
{
|
||||
CONF_TYPE: "tcp",
|
||||
CONF_HOST: TEST_HOST,
|
||||
CONF_PORT: 5501,
|
||||
CONF_TYPE: CONF_TCP,
|
||||
CONF_HOST: TEST_MODBUS_HOST,
|
||||
CONF_PORT: TEST_PORT_TCP,
|
||||
CONF_NAME: TEST_MODBUS_NAME,
|
||||
do_group: [
|
||||
{
|
||||
CONF_INPUT_TYPE: do_type,
|
||||
CONF_NAME: TEST_SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 51,
|
||||
CONF_SCAN_INTERVAL: do_scan_interval,
|
||||
}
|
||||
@ -482,7 +488,7 @@ async def test_pb_read(
|
||||
"""Run test for different read."""
|
||||
|
||||
# Check state
|
||||
entity_id = f"{do_domain}.{TEST_SENSOR_NAME}"
|
||||
entity_id = f"{do_domain}.{TEST_ENTITY_NAME}"
|
||||
state = hass.states.get(entity_id).state
|
||||
assert hass.states.get(entity_id).state
|
||||
|
||||
@ -499,9 +505,9 @@ async def test_pymodbus_constructor_fail(hass, caplog):
|
||||
config = {
|
||||
DOMAIN: [
|
||||
{
|
||||
CONF_TYPE: "tcp",
|
||||
CONF_HOST: TEST_HOST,
|
||||
CONF_PORT: 5501,
|
||||
CONF_TYPE: CONF_TCP,
|
||||
CONF_HOST: TEST_MODBUS_HOST,
|
||||
CONF_PORT: TEST_PORT_TCP,
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -522,9 +528,9 @@ async def test_pymodbus_close_fail(hass, caplog, mock_pymodbus):
|
||||
config = {
|
||||
DOMAIN: [
|
||||
{
|
||||
CONF_TYPE: "tcp",
|
||||
CONF_HOST: TEST_HOST,
|
||||
CONF_PORT: 5501,
|
||||
CONF_TYPE: CONF_TCP,
|
||||
CONF_HOST: TEST_MODBUS_HOST,
|
||||
CONF_PORT: TEST_PORT_TCP,
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -543,19 +549,19 @@ async def test_delay(hass, mock_pymodbus):
|
||||
# We "hijiack" a binary_sensor to make a proper blackbox test.
|
||||
test_delay = 15
|
||||
test_scan_interval = 5
|
||||
entity_id = f"{BINARY_SENSOR_DOMAIN}.{TEST_SENSOR_NAME}"
|
||||
entity_id = f"{BINARY_SENSOR_DOMAIN}.{TEST_ENTITY_NAME}"
|
||||
config = {
|
||||
DOMAIN: [
|
||||
{
|
||||
CONF_TYPE: "tcp",
|
||||
CONF_HOST: TEST_HOST,
|
||||
CONF_PORT: 5501,
|
||||
CONF_TYPE: CONF_TCP,
|
||||
CONF_HOST: TEST_MODBUS_HOST,
|
||||
CONF_PORT: TEST_PORT_TCP,
|
||||
CONF_NAME: TEST_MODBUS_NAME,
|
||||
CONF_DELAY: test_delay,
|
||||
CONF_BINARY_SENSORS: [
|
||||
{
|
||||
CONF_INPUT_TYPE: CALL_TYPE_COIL,
|
||||
CONF_NAME: f"{TEST_SENSOR_NAME}",
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 52,
|
||||
CONF_SCAN_INTERVAL: test_scan_interval,
|
||||
},
|
||||
|
@ -11,6 +11,7 @@ from homeassistant.components.modbus.const import (
|
||||
CONF_INPUT_TYPE,
|
||||
CONF_STATE_OFF,
|
||||
CONF_STATE_ON,
|
||||
CONF_TCP,
|
||||
CONF_VERIFY,
|
||||
CONF_WRITE_TYPE,
|
||||
MODBUS_DOMAIN,
|
||||
@ -33,10 +34,15 @@ from homeassistant.const import (
|
||||
from homeassistant.core import State
|
||||
from homeassistant.setup import async_setup_component
|
||||
|
||||
from .conftest import ReadResult, base_test
|
||||
from .conftest import (
|
||||
TEST_ENTITY_NAME,
|
||||
TEST_MODBUS_HOST,
|
||||
TEST_PORT_TCP,
|
||||
ReadResult,
|
||||
base_test,
|
||||
)
|
||||
|
||||
LIGHT_NAME = "test_light"
|
||||
ENTITY_ID = f"{LIGHT_DOMAIN}.{LIGHT_NAME}"
|
||||
ENTITY_ID = f"{LIGHT_DOMAIN}.{TEST_ENTITY_NAME}"
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
@ -45,7 +51,7 @@ ENTITY_ID = f"{LIGHT_DOMAIN}.{LIGHT_NAME}"
|
||||
{
|
||||
CONF_LIGHTS: [
|
||||
{
|
||||
CONF_NAME: LIGHT_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
}
|
||||
]
|
||||
@ -53,7 +59,7 @@ ENTITY_ID = f"{LIGHT_DOMAIN}.{LIGHT_NAME}"
|
||||
{
|
||||
CONF_LIGHTS: [
|
||||
{
|
||||
CONF_NAME: LIGHT_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_WRITE_TYPE: CALL_TYPE_COIL,
|
||||
}
|
||||
@ -62,7 +68,7 @@ ENTITY_ID = f"{LIGHT_DOMAIN}.{LIGHT_NAME}"
|
||||
{
|
||||
CONF_LIGHTS: [
|
||||
{
|
||||
CONF_NAME: LIGHT_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SLAVE: 1,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
@ -79,7 +85,7 @@ ENTITY_ID = f"{LIGHT_DOMAIN}.{LIGHT_NAME}"
|
||||
{
|
||||
CONF_LIGHTS: [
|
||||
{
|
||||
CONF_NAME: LIGHT_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SLAVE: 1,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
@ -96,7 +102,7 @@ ENTITY_ID = f"{LIGHT_DOMAIN}.{LIGHT_NAME}"
|
||||
{
|
||||
CONF_LIGHTS: [
|
||||
{
|
||||
CONF_NAME: LIGHT_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SLAVE: 1,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
@ -113,7 +119,7 @@ ENTITY_ID = f"{LIGHT_DOMAIN}.{LIGHT_NAME}"
|
||||
{
|
||||
CONF_LIGHTS: [
|
||||
{
|
||||
CONF_NAME: LIGHT_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SLAVE: 1,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
@ -165,13 +171,13 @@ async def test_all_light(hass, call_type, regs, verify, expected):
|
||||
state = await base_test(
|
||||
hass,
|
||||
{
|
||||
CONF_NAME: LIGHT_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SLAVE: 1,
|
||||
CONF_WRITE_TYPE: call_type,
|
||||
**verify,
|
||||
},
|
||||
LIGHT_NAME,
|
||||
TEST_ENTITY_NAME,
|
||||
LIGHT_DOMAIN,
|
||||
CONF_LIGHTS,
|
||||
None,
|
||||
@ -194,7 +200,7 @@ async def test_all_light(hass, call_type, regs, verify, expected):
|
||||
{
|
||||
CONF_LIGHTS: [
|
||||
{
|
||||
CONF_NAME: LIGHT_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
}
|
||||
@ -213,18 +219,18 @@ async def test_light_service_turn(hass, caplog, mock_pymodbus):
|
||||
ENTITY_ID2 = f"{ENTITY_ID}2"
|
||||
config = {
|
||||
MODBUS_DOMAIN: {
|
||||
CONF_TYPE: "tcp",
|
||||
CONF_HOST: "modbusTestHost",
|
||||
CONF_PORT: 5501,
|
||||
CONF_TYPE: CONF_TCP,
|
||||
CONF_HOST: TEST_MODBUS_HOST,
|
||||
CONF_PORT: TEST_PORT_TCP,
|
||||
CONF_LIGHTS: [
|
||||
{
|
||||
CONF_NAME: LIGHT_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 17,
|
||||
CONF_WRITE_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
},
|
||||
{
|
||||
CONF_NAME: f"{LIGHT_NAME}2",
|
||||
CONF_NAME: f"{TEST_ENTITY_NAME}2",
|
||||
CONF_ADDRESS: 17,
|
||||
CONF_WRITE_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
@ -283,7 +289,7 @@ async def test_light_service_turn(hass, caplog, mock_pymodbus):
|
||||
{
|
||||
CONF_LIGHTS: [
|
||||
{
|
||||
CONF_NAME: LIGHT_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_WRITE_TYPE: CALL_TYPE_COIL,
|
||||
CONF_VERIFY: {},
|
||||
|
@ -35,10 +35,9 @@ from homeassistant.const import (
|
||||
)
|
||||
from homeassistant.core import State
|
||||
|
||||
from .conftest import ReadResult, base_test
|
||||
from .conftest import TEST_ENTITY_NAME, ReadResult, base_test
|
||||
|
||||
SENSOR_NAME = "test_sensor"
|
||||
ENTITY_ID = f"{SENSOR_DOMAIN}.{SENSOR_NAME}"
|
||||
ENTITY_ID = f"{SENSOR_DOMAIN}.{TEST_ENTITY_NAME}"
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
@ -47,7 +46,7 @@ ENTITY_ID = f"{SENSOR_DOMAIN}.{SENSOR_NAME}"
|
||||
{
|
||||
CONF_SENSORS: [
|
||||
{
|
||||
CONF_NAME: SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 51,
|
||||
}
|
||||
]
|
||||
@ -55,7 +54,7 @@ ENTITY_ID = f"{SENSOR_DOMAIN}.{SENSOR_NAME}"
|
||||
{
|
||||
CONF_SENSORS: [
|
||||
{
|
||||
CONF_NAME: SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 51,
|
||||
CONF_SLAVE: 10,
|
||||
CONF_COUNT: 1,
|
||||
@ -71,7 +70,7 @@ ENTITY_ID = f"{SENSOR_DOMAIN}.{SENSOR_NAME}"
|
||||
{
|
||||
CONF_SENSORS: [
|
||||
{
|
||||
CONF_NAME: SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 51,
|
||||
CONF_SLAVE: 10,
|
||||
CONF_COUNT: 1,
|
||||
@ -87,7 +86,7 @@ ENTITY_ID = f"{SENSOR_DOMAIN}.{SENSOR_NAME}"
|
||||
{
|
||||
CONF_SENSORS: [
|
||||
{
|
||||
CONF_NAME: SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 51,
|
||||
CONF_COUNT: 1,
|
||||
CONF_SWAP: CONF_SWAP_NONE,
|
||||
@ -97,7 +96,7 @@ ENTITY_ID = f"{SENSOR_DOMAIN}.{SENSOR_NAME}"
|
||||
{
|
||||
CONF_SENSORS: [
|
||||
{
|
||||
CONF_NAME: SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 51,
|
||||
CONF_COUNT: 1,
|
||||
CONF_SWAP: CONF_SWAP_BYTE,
|
||||
@ -107,7 +106,7 @@ ENTITY_ID = f"{SENSOR_DOMAIN}.{SENSOR_NAME}"
|
||||
{
|
||||
CONF_SENSORS: [
|
||||
{
|
||||
CONF_NAME: SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 51,
|
||||
CONF_COUNT: 2,
|
||||
CONF_SWAP: CONF_SWAP_WORD,
|
||||
@ -117,7 +116,7 @@ ENTITY_ID = f"{SENSOR_DOMAIN}.{SENSOR_NAME}"
|
||||
{
|
||||
CONF_SENSORS: [
|
||||
{
|
||||
CONF_NAME: SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 51,
|
||||
CONF_COUNT: 2,
|
||||
CONF_SWAP: CONF_SWAP_WORD_BYTE,
|
||||
@ -139,7 +138,7 @@ async def test_config_sensor(hass, mock_modbus):
|
||||
{
|
||||
CONF_SENSORS: [
|
||||
{
|
||||
CONF_NAME: SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_COUNT: 8,
|
||||
CONF_PRECISION: 2,
|
||||
@ -154,7 +153,7 @@ async def test_config_sensor(hass, mock_modbus):
|
||||
{
|
||||
CONF_SENSORS: [
|
||||
{
|
||||
CONF_NAME: SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_COUNT: 2,
|
||||
CONF_PRECISION: 2,
|
||||
@ -169,7 +168,7 @@ async def test_config_sensor(hass, mock_modbus):
|
||||
{
|
||||
CONF_SENSORS: [
|
||||
{
|
||||
CONF_NAME: SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_DATA_TYPE: DATA_TYPE_CUSTOM,
|
||||
CONF_COUNT: 4,
|
||||
@ -184,7 +183,7 @@ async def test_config_sensor(hass, mock_modbus):
|
||||
{
|
||||
CONF_SENSORS: [
|
||||
{
|
||||
CONF_NAME: SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_DATA_TYPE: DATA_TYPE_CUSTOM,
|
||||
CONF_COUNT: 4,
|
||||
@ -193,13 +192,13 @@ async def test_config_sensor(hass, mock_modbus):
|
||||
},
|
||||
]
|
||||
},
|
||||
"Error in sensor test_sensor. The `structure` field can not be empty",
|
||||
f"Error in sensor {TEST_ENTITY_NAME}. The `structure` field can not be empty",
|
||||
),
|
||||
(
|
||||
{
|
||||
CONF_SENSORS: [
|
||||
{
|
||||
CONF_NAME: SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_DATA_TYPE: DATA_TYPE_CUSTOM,
|
||||
CONF_COUNT: 4,
|
||||
@ -214,7 +213,7 @@ async def test_config_sensor(hass, mock_modbus):
|
||||
{
|
||||
CONF_SENSORS: [
|
||||
{
|
||||
CONF_NAME: SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_DATA_TYPE: DATA_TYPE_CUSTOM,
|
||||
CONF_COUNT: 1,
|
||||
@ -223,7 +222,7 @@ async def test_config_sensor(hass, mock_modbus):
|
||||
},
|
||||
]
|
||||
},
|
||||
"Error in sensor test_sensor swap(word) not possible due to the registers count: 1, needed: 2",
|
||||
f"Error in sensor {TEST_ENTITY_NAME} swap(word) not possible due to the registers count: 1, needed: 2",
|
||||
),
|
||||
],
|
||||
)
|
||||
@ -508,8 +507,8 @@ async def test_all_sensor(hass, cfg, regs, expected):
|
||||
|
||||
state = await base_test(
|
||||
hass,
|
||||
{CONF_NAME: SENSOR_NAME, CONF_ADDRESS: 1234, **cfg},
|
||||
SENSOR_NAME,
|
||||
{CONF_NAME: TEST_ENTITY_NAME, CONF_ADDRESS: 1234, **cfg},
|
||||
TEST_ENTITY_NAME,
|
||||
SENSOR_DOMAIN,
|
||||
CONF_SENSORS,
|
||||
CONF_REGISTERS,
|
||||
@ -562,8 +561,8 @@ async def test_struct_sensor(hass, cfg, regs, expected):
|
||||
|
||||
state = await base_test(
|
||||
hass,
|
||||
{CONF_NAME: SENSOR_NAME, CONF_ADDRESS: 1234, **cfg},
|
||||
SENSOR_NAME,
|
||||
{CONF_NAME: TEST_ENTITY_NAME, CONF_ADDRESS: 1234, **cfg},
|
||||
TEST_ENTITY_NAME,
|
||||
SENSOR_DOMAIN,
|
||||
CONF_SENSORS,
|
||||
None,
|
||||
@ -586,7 +585,7 @@ async def test_struct_sensor(hass, cfg, regs, expected):
|
||||
{
|
||||
CONF_SENSORS: [
|
||||
{
|
||||
CONF_NAME: SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 51,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
}
|
||||
@ -605,7 +604,7 @@ async def test_restore_state_sensor(hass, mock_test_state, mock_modbus):
|
||||
{
|
||||
CONF_SENSORS: [
|
||||
{
|
||||
CONF_NAME: SENSOR_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_INPUT_TYPE: CALL_TYPE_REGISTER_INPUT,
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ from homeassistant.components.modbus.const import (
|
||||
CONF_INPUT_TYPE,
|
||||
CONF_STATE_OFF,
|
||||
CONF_STATE_ON,
|
||||
CONF_TCP,
|
||||
CONF_VERIFY,
|
||||
CONF_WRITE_TYPE,
|
||||
MODBUS_DOMAIN,
|
||||
@ -39,12 +40,17 @@ from homeassistant.core import State
|
||||
from homeassistant.setup import async_setup_component
|
||||
import homeassistant.util.dt as dt_util
|
||||
|
||||
from .conftest import ReadResult, base_test
|
||||
from .conftest import (
|
||||
TEST_ENTITY_NAME,
|
||||
TEST_MODBUS_HOST,
|
||||
TEST_PORT_TCP,
|
||||
ReadResult,
|
||||
base_test,
|
||||
)
|
||||
|
||||
from tests.common import async_fire_time_changed
|
||||
|
||||
SWITCH_NAME = "test_switch"
|
||||
ENTITY_ID = f"{SWITCH_DOMAIN}.{SWITCH_NAME}"
|
||||
ENTITY_ID = f"{SWITCH_DOMAIN}.{TEST_ENTITY_NAME}"
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
@ -53,7 +59,7 @@ ENTITY_ID = f"{SWITCH_DOMAIN}.{SWITCH_NAME}"
|
||||
{
|
||||
CONF_SWITCHES: [
|
||||
{
|
||||
CONF_NAME: SWITCH_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
}
|
||||
]
|
||||
@ -61,7 +67,7 @@ ENTITY_ID = f"{SWITCH_DOMAIN}.{SWITCH_NAME}"
|
||||
{
|
||||
CONF_SWITCHES: [
|
||||
{
|
||||
CONF_NAME: SWITCH_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_WRITE_TYPE: CALL_TYPE_COIL,
|
||||
}
|
||||
@ -70,7 +76,7 @@ ENTITY_ID = f"{SWITCH_DOMAIN}.{SWITCH_NAME}"
|
||||
{
|
||||
CONF_SWITCHES: [
|
||||
{
|
||||
CONF_NAME: SWITCH_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SLAVE: 1,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
@ -88,7 +94,7 @@ ENTITY_ID = f"{SWITCH_DOMAIN}.{SWITCH_NAME}"
|
||||
{
|
||||
CONF_SWITCHES: [
|
||||
{
|
||||
CONF_NAME: SWITCH_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SLAVE: 1,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
@ -107,7 +113,7 @@ ENTITY_ID = f"{SWITCH_DOMAIN}.{SWITCH_NAME}"
|
||||
{
|
||||
CONF_SWITCHES: [
|
||||
{
|
||||
CONF_NAME: SWITCH_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SLAVE: 1,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
@ -125,7 +131,7 @@ ENTITY_ID = f"{SWITCH_DOMAIN}.{SWITCH_NAME}"
|
||||
{
|
||||
CONF_SWITCHES: [
|
||||
{
|
||||
CONF_NAME: SWITCH_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SLAVE: 1,
|
||||
CONF_COMMAND_OFF: 0x00,
|
||||
@ -179,13 +185,13 @@ async def test_all_switch(hass, call_type, regs, verify, expected):
|
||||
state = await base_test(
|
||||
hass,
|
||||
{
|
||||
CONF_NAME: SWITCH_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SLAVE: 1,
|
||||
CONF_WRITE_TYPE: call_type,
|
||||
**verify,
|
||||
},
|
||||
SWITCH_NAME,
|
||||
TEST_ENTITY_NAME,
|
||||
SWITCH_DOMAIN,
|
||||
CONF_SWITCHES,
|
||||
None,
|
||||
@ -208,7 +214,7 @@ async def test_all_switch(hass, call_type, regs, verify, expected):
|
||||
{
|
||||
CONF_SWITCHES: [
|
||||
{
|
||||
CONF_NAME: SWITCH_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
}
|
||||
@ -224,21 +230,21 @@ async def test_restore_state_switch(hass, mock_test_state, mock_modbus):
|
||||
async def test_switch_service_turn(hass, caplog, mock_pymodbus):
|
||||
"""Run test for service turn_on/turn_off."""
|
||||
|
||||
ENTITY_ID2 = f"{SWITCH_DOMAIN}.{SWITCH_NAME}2"
|
||||
ENTITY_ID2 = f"{SWITCH_DOMAIN}.{TEST_ENTITY_NAME}2"
|
||||
config = {
|
||||
MODBUS_DOMAIN: {
|
||||
CONF_TYPE: "tcp",
|
||||
CONF_HOST: "modbusTestHost",
|
||||
CONF_PORT: 5501,
|
||||
CONF_TYPE: CONF_TCP,
|
||||
CONF_HOST: TEST_MODBUS_HOST,
|
||||
CONF_PORT: TEST_PORT_TCP,
|
||||
CONF_SWITCHES: [
|
||||
{
|
||||
CONF_NAME: SWITCH_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 17,
|
||||
CONF_WRITE_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
},
|
||||
{
|
||||
CONF_NAME: f"{SWITCH_NAME}2",
|
||||
CONF_NAME: f"{TEST_ENTITY_NAME}2",
|
||||
CONF_ADDRESS: 17,
|
||||
CONF_WRITE_TYPE: CALL_TYPE_REGISTER_HOLDING,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
@ -297,7 +303,7 @@ async def test_switch_service_turn(hass, caplog, mock_pymodbus):
|
||||
{
|
||||
CONF_SWITCHES: [
|
||||
{
|
||||
CONF_NAME: SWITCH_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 1234,
|
||||
CONF_WRITE_TYPE: CALL_TYPE_COIL,
|
||||
CONF_VERIFY: {},
|
||||
@ -324,12 +330,12 @@ async def test_delay_switch(hass, mock_pymodbus):
|
||||
config = {
|
||||
MODBUS_DOMAIN: [
|
||||
{
|
||||
CONF_TYPE: "tcp",
|
||||
CONF_HOST: "modbusTestHost",
|
||||
CONF_PORT: 5501,
|
||||
CONF_TYPE: CONF_TCP,
|
||||
CONF_HOST: TEST_MODBUS_HOST,
|
||||
CONF_PORT: TEST_PORT_TCP,
|
||||
CONF_SWITCHES: [
|
||||
{
|
||||
CONF_NAME: SWITCH_NAME,
|
||||
CONF_NAME: TEST_ENTITY_NAME,
|
||||
CONF_ADDRESS: 51,
|
||||
CONF_SCAN_INTERVAL: 0,
|
||||
CONF_VERIFY: {
|
||||
|
Loading…
x
Reference in New Issue
Block a user