From 15176300e209a9570bc0fd7dfcfc6edabcdf781d Mon Sep 17 00:00:00 2001 From: jan iversen Date: Tue, 22 Nov 2022 09:57:04 +0100 Subject: [PATCH] Add full test of wrap option (#82308) fixes undefined --- tests/components/modbus/test_sensor.py | 79 ++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/tests/components/modbus/test_sensor.py b/tests/components/modbus/test_sensor.py index b1432876a97..bb9e4285c42 100644 --- a/tests/components/modbus/test_sensor.py +++ b/tests/components/modbus/test_sensor.py @@ -717,6 +717,7 @@ async def test_lazy_error_sensor(hass, mock_do_cycle, start_expect, end_expect): { CONF_NAME: TEST_ENTITY_NAME, CONF_ADDRESS: 51, + CONF_SCAN_INTERVAL: 1, }, ], }, @@ -762,6 +763,84 @@ async def test_struct_sensor(hass, mock_do_cycle, expected): assert hass.states.get(ENTITY_ID).state == expected +@pytest.mark.parametrize( + "do_config", + [ + { + CONF_SENSORS: [ + { + CONF_NAME: TEST_ENTITY_NAME, + CONF_ADDRESS: 201, + CONF_SCAN_INTERVAL: 1, + }, + ], + }, + ], +) +@pytest.mark.parametrize( + "config_addon,register_words,expected", + [ + ( + { + CONF_COUNT: 1, + CONF_SWAP: CONF_SWAP_NONE, + CONF_DATA_TYPE: DataType.UINT16, + }, + [0x0102], + "258", + ), + ( + { + CONF_COUNT: 1, + CONF_SWAP: CONF_SWAP_BYTE, + CONF_DATA_TYPE: DataType.UINT16, + }, + [0x0102], + "513", + ), + ( + { + CONF_COUNT: 2, + CONF_SWAP: CONF_SWAP_NONE, + CONF_DATA_TYPE: DataType.UINT32, + }, + [0x0102, 0x0304], + "16909060", + ), + ( + { + CONF_COUNT: 2, + CONF_SWAP: CONF_SWAP_BYTE, + CONF_DATA_TYPE: DataType.UINT32, + }, + [0x0102, 0x0304], + "33620995", + ), + ( + { + CONF_COUNT: 2, + CONF_SWAP: CONF_SWAP_WORD, + CONF_DATA_TYPE: DataType.UINT32, + }, + [0x0102, 0x0304], + "50594050", + ), + ( + { + CONF_COUNT: 2, + CONF_SWAP: CONF_SWAP_WORD_BYTE, + CONF_DATA_TYPE: DataType.UINT32, + }, + [0x0102, 0x0304], + "67305985", + ), + ], +) +async def test_wrap_sensor(hass, mock_do_cycle, expected): + """Run test for sensor struct.""" + assert hass.states.get(ENTITY_ID).state == expected + + @pytest.mark.parametrize( "mock_test_state", [(State(ENTITY_ID, "117"), State(f"{ENTITY_ID}_1", "119"))],