mirror of
https://github.com/home-assistant/core.git
synced 2025-11-12 12:30:31 +00:00
Secure 100% test coverage for modbus, binary_sensor and sensor (#49521)
* Secure 100% test coverage for modbus/binary_sensor. * Test that class constructor is called.
This commit is contained in:
@@ -3,6 +3,7 @@ from datetime import timedelta
|
||||
import logging
|
||||
from unittest import mock
|
||||
|
||||
from pymodbus.exceptions import ModbusException
|
||||
import pytest
|
||||
|
||||
from homeassistant.components.modbus.const import DEFAULT_HUB, MODBUS_DOMAIN as DOMAIN
|
||||
@@ -69,11 +70,23 @@ async def base_test(
|
||||
):
|
||||
|
||||
# Setup inputs for the sensor
|
||||
read_result = ReadResult(register_words)
|
||||
mock_sync.read_coils.return_value = read_result
|
||||
mock_sync.read_discrete_inputs.return_value = read_result
|
||||
mock_sync.read_input_registers.return_value = read_result
|
||||
mock_sync.read_holding_registers.return_value = read_result
|
||||
if register_words is None:
|
||||
mock_sync.read_coils.side_effect = ModbusException("fail read_coils")
|
||||
mock_sync.read_discrete_inputs.side_effect = ModbusException(
|
||||
"fail read_coils"
|
||||
)
|
||||
mock_sync.read_input_registers.side_effect = ModbusException(
|
||||
"fail read_coils"
|
||||
)
|
||||
mock_sync.read_holding_registers.side_effect = ModbusException(
|
||||
"fail read_coils"
|
||||
)
|
||||
else:
|
||||
read_result = ReadResult(register_words)
|
||||
mock_sync.read_coils.return_value = read_result
|
||||
mock_sync.read_discrete_inputs.return_value = read_result
|
||||
mock_sync.read_input_registers.return_value = read_result
|
||||
mock_sync.read_holding_registers.return_value = read_result
|
||||
|
||||
# mock timer and add old/new config
|
||||
now = dt_util.utcnow()
|
||||
@@ -104,7 +117,7 @@ async def base_test(
|
||||
assert await async_setup_component(hass, entity_domain, config_device)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert DOMAIN in hass.data
|
||||
assert DOMAIN in hass.config.components
|
||||
if config_device is not None:
|
||||
entity_id = f"{entity_domain}.{device_name}"
|
||||
device = hass.states.get(entity_id)
|
||||
|
||||
Reference in New Issue
Block a user