Пример #1
0
    def test_client_protocol_build_response(self):
        """ Test the udp client protocol builds responses """
        protocol = ModbusClientProtocol()
        self.assertEqual(0, len(list(protocol.transaction)))

        def handle_failure(failure):
            self.assertTrue(isinstance(failure.value, ConnectionException))

        d = protocol._buildResponse(0x00)
        d.addErrback(handle_failure)
        self.assertEqual(0, len(list(protocol.transaction)))

        protocol._connected = True
        d = protocol._buildResponse(0x00)
        self.assertEqual(1, len(list(protocol.transaction)))
Пример #2
0
    def test_client_protocol_build_response(self):
        """ Test the udp client protocol builds responses """
        protocol = ModbusClientProtocol()
        self.assertEqual(0, len(list(protocol.transaction)))

        def handle_failure(failure):
            self.assertTrue(isinstance(failure.value, ConnectionException))

        d = protocol._buildResponse(0x00)
        d.addErrback(handle_failure)
        self.assertEqual(0, len(list(protocol.transaction)))

        protocol._connected = True
        d = protocol._buildResponse(0x00)
        self.assertEqual(1, len(list(protocol.transaction)))
Пример #3
0
    def test_client_protocol_data_received(self):
        """ Test the client protocol data received """
        protocol = ModbusClientProtocol()
        protocol.connectionMade()
        out = []
        data = "\x00\x00\x12\x34\x00\x06\xff\x01\x01\x02\x00\x04"

        # setup existing request
        d = protocol._buildResponse(0x00)
        d.addCallback(lambda v: out.append(v))

        protocol.dataReceived(data)
        self.assertTrue(isinstance(out[0], ReadCoilsResponse))
Пример #4
0
    def test_client_protocol_data_received(self):
        """ Test the client protocol data received """
        protocol = ModbusClientProtocol()
        protocol.connectionMade()
        out = []
        data = '\x00\x00\x12\x34\x00\x06\xff\x01\x01\x02\x00\x04'

        # setup existing request
        d = protocol._buildResponse(0x00)
        d.addCallback(lambda v: out.append(v))

        protocol.dataReceived(data)
        self.assertTrue(isinstance(out[0], ReadCoilsResponse))
Пример #5
0
    def test_client_protocol_disconnect(self):
        """ Test the client protocol disconnect """
        protocol = ModbusClientProtocol()
        protocol.connectionMade()

        def handle_failure(failure):
            self.assertTrue(isinstance(failure.value, ConnectionException))

        d = protocol._buildResponse(0x00)
        d.addErrback(handle_failure)

        self.assertTrue(protocol._connected)
        protocol.connectionLost("because")
        self.assertFalse(protocol._connected)
Пример #6
0
    def test_client_protocol_disconnect(self):
        """ Test the client protocol disconnect """
        protocol = ModbusClientProtocol()
        protocol.connectionMade()

        def handle_failure(failure):
            self.assertTrue(isinstance(failure.value, ConnectionException))

        d = protocol._buildResponse(0x00)
        d.addErrback(handle_failure)

        self.assertTrue(protocol._connected)
        protocol.connectionLost('because')
        self.assertFalse(protocol._connected)
Пример #7
0
    def test_client_protocol_handle_response(self):
        """ Test the client protocol handles responses """
        protocol = ModbusClientProtocol()
        protocol.connectionMade()
        out = []
        reply = ReadCoilsRequest(1, 1)
        reply.transaction_id = 0x00

        # handle skipped cases
        protocol._handleResponse(None)
        protocol._handleResponse(reply)

        # handle existing cases
        d = protocol._buildResponse(0x00)
        d.addCallback(lambda v: out.append(v))
        protocol._handleResponse(reply)
        self.assertEqual(out[0], reply)
Пример #8
0
    def test_client_protocol_handle_response(self):
        """ Test the client protocol handles responses """
        protocol = ModbusClientProtocol()
        protocol.connectionMade()
        out = []
        reply = ReadCoilsRequest(1, 1)
        reply.transaction_id = 0x00

        # handle skipped cases
        protocol._handleResponse(None)
        protocol._handleResponse(reply)

        # handle existing cases
        d = protocol._buildResponse(0x00)
        d.addCallback(lambda v: out.append(v))
        protocol._handleResponse(reply)
        self.assertEqual(out[0], reply)