diff --git a/test/test_bit_write_messages.py b/test/test_bit_write_messages.py index fd40a53c1..d272f4f0d 100644 --- a/test/test_bit_write_messages.py +++ b/test/test_bit_write_messages.py @@ -43,6 +43,8 @@ def test_bit_write_base_requests(self): WriteSingleCoilResponse(1, 0xABCD): b"\x00\x01\xff\x00", WriteMultipleCoilsRequest(1, [True] * 5): b"\x00\x01\x00\x05\x01\x1f", WriteMultipleCoilsResponse(1, 5): b"\x00\x01\x00\x05", + WriteMultipleCoilsRequest(1, True): b"\x00\x01\x00\x01\x01\x01", + WriteMultipleCoilsResponse(1, 1): b"\x00\x01\x00\x01", } for request, expected in iter(messages.items()): self.assertEqual(request.encode(), expected) @@ -63,6 +65,13 @@ def test_write_multiple_coils_request(self): self.assertEqual(request.values, [True] * 5) self.assertEqual(request.get_response_pdu_size(), 5) + request = WriteMultipleCoilsRequest(1, True) + request.decode(b"\x00\x01\x00\x01\x01\x01") + self.assertEqual(request.byte_count, 1) + self.assertEqual(request.address, 1) + self.assertEqual(request.values, [True]) + self.assertEqual(request.get_response_pdu_size(), 5) + def test_invalid_write_multiple_coils_request(self): """Test write invalid multiple coils.""" request = WriteMultipleCoilsRequest(1, None) diff --git a/test/test_register_read_messages.py b/test/test_register_read_messages.py index a873378fb..61c8df400 100644 --- a/test/test_register_read_messages.py +++ b/test/test_register_read_messages.py @@ -38,7 +38,6 @@ def setUp(self): "read_address": 1, "read_count": 5, "write_address": 1, - "write_registers": [0x00] * 5, } self.value = 0xABCD self.values = [0xA, 0xB, 0xC] @@ -47,10 +46,16 @@ def setUp(self): ReadHoldingRegistersRequest(1, 5): b"\x00\x01\x00\x05", ReadInputRegistersRequest(1, 5): b"\x00\x01\x00\x05", ReadWriteMultipleRegistersRequest( - **arguments + write_registers=[0x00] * 5, + **arguments, ): b"\x00\x01\x00\x05\x00\x01\x00" b"\x05\x0a\x00\x00\x00\x00\x00" b"\x00\x00\x00\x00\x00", + ReadWriteMultipleRegistersRequest( + write_registers=0xAB, + **arguments, + ): b"\x00\x01\x00\x05\x00\x01\x00" + b"\x01\x02\x00\xAB", } self.response_read = { ReadRegistersResponseBase(self.values): TEST_MESSAGE, diff --git a/test/test_register_write_messages.py b/test/test_register_write_messages.py index a73398863..f19551046 100644 --- a/test/test_register_write_messages.py +++ b/test/test_register_write_messages.py @@ -41,7 +41,8 @@ def setUp(self): WriteSingleRegisterResponse(1, self.value): b"\x00\x01\xab\xcd", WriteMultipleRegistersRequest( 1, self.values - ): b"\x00\x01\x00\x03\x06\x00\n\x00\x0b\x00\x0c", + ): b"\x00\x01\x00\x03\x06\x00\x0a\x00\x0b\x00\x0c", + WriteMultipleRegistersRequest(1, 0xD): b"\x00\x01\x00\x01\x02\x00\x0D", WriteMultipleRegistersResponse(1, 5): b"\x00\x01\x00\x05", WriteSingleRegisterRequest( 1, self.payload[0], skip_encode=True @@ -117,6 +118,10 @@ def test_write_multiple_register_request(self): result = request.execute(context) self.assertEqual(result.function_code, request.function_code) + request = WriteMultipleRegistersRequest(0x00, 0x00) + result = request.execute(context) + self.assertEqual(result.function_code, request.function_code) + # -----------------------------------------------------------------------# # Mask Write Register Request # -----------------------------------------------------------------------#