def testUdpServerInitialize(self): protocol = ModbusUdpProtocol(store=None) self.assertEqual(protocol.control.Identity.VendorName, '') identity = ModbusDeviceIdentification(info={0x00: 'VendorName'}) protocol = ModbusUdpProtocol(store=None, identity=identity) self.assertEqual(protocol.control.Identity.VendorName, 'VendorName')
def testDatagramReceived(self): mock_data = b"\x00\x01\x12\x34\x00\x04\xff\x02\x12\x34" mock_addr = 0x01 protocol = ModbusUdpProtocol(store=None) protocol.framer.processIncomingPacket = MagicMock() protocol.control.ListenOnly = False protocol._execute = MagicMock() protocol.datagramReceived(mock_data, mock_addr) self.assertTrue(protocol.framer.processIncomingPacket.called)
def testUdpExecuteSuccess(self): protocol = ModbusUdpProtocol(store=None) mock_addr = 0x01 protocol.store = MagicMock() request = MagicMock() protocol._send = MagicMock() # tst if _send being called protocol._execute(request, mock_addr) self.assertTrue(protocol._send.called)
def testUdpExecuteFailure(self): protocol = ModbusUdpProtocol(store=None) mock_addr = 0x01 protocol.store = MagicMock() request = MagicMock() protocol._send = MagicMock() # CASE-1: test NoSuchSlaveException exceptions request.execute.side_effect = NoSuchSlaveException() self.assertRaises( NoSuchSlaveException, protocol._execute(request, mock_addr) ) self.assertTrue(request.doException.called) # CASE-2: NoSuchSlaveException with ignore_missing_slaves = true protocol.ignore_missing_slaves = True request.execute.side_effect = NoSuchSlaveException() self.assertEqual(protocol._execute(request, mock_addr), None) # test other exceptions request.execute.side_effect = ModbusIOException() self.assertRaises( ModbusIOException, protocol._execute(request, mock_addr) ) self.assertTrue(protocol._send.called)
def testSendUdp(self): protocol = ModbusUdpProtocol(store=None) mock_data = b"\x00\x01\x12\x34\x00\x04\xff\x02\x12\x34" mock_addr = 0x01 protocol.control = MagicMock() protocol.framer = MagicMock() protocol.framer.buildPacket = MagicMock(return_value=mock_data) protocol.transport = MagicMock() protocol._send(mock_data, mock_addr) self.assertTrue(protocol.framer.buildPacket.called) self.assertTrue(protocol.transport.write.called)
def testSendUdp(self): protocol = ModbusUdpProtocol(store=None) mock_data = b"\x00\x01\x12\x34\x00\x04\xff\x02\x12\x34" mock_addr = 0x01 protocol.control = MagicMock() protocol.framer = MagicMock() protocol.framer.buildPacket = MagicMock(return_value=mock_data) protocol.transport= MagicMock() protocol._send(mock_data, mock_addr) self.assertTrue(protocol.framer.buildPacket.called) self.assertTrue(protocol.transport.write.called)
def testUdpExecuteFailure(self): protocol = ModbusUdpProtocol(store=None) mock_addr = 0x01 protocol.store = MagicMock() request = MagicMock() protocol._send = MagicMock() # CASE-1: test NoSuchSlaveException exceptions request.execute.side_effect = NoSuchSlaveException() self.assertRaises(NoSuchSlaveException, protocol._execute(request, mock_addr)) self.assertTrue(request.doException.called) # CASE-2: NoSuchSlaveException with ignore_missing_slaves = true protocol.ignore_missing_slaves = True request.execute.side_effect = NoSuchSlaveException() self.assertEqual(protocol._execute(request, mock_addr), None) # test other exceptions request.execute.side_effect = ModbusIOException() self.assertRaises(ModbusIOException, protocol._execute(request, mock_addr)) self.assertTrue(protocol._send.called)