コード例 #1
0
    def setUp(self):

        self.elec_packet = (b'\x11\x5A\x01\x00\x2E\xB2\x03\x00\x00'
                            b'\x02\xB4\x00\x00\x0C\x46\xA8\x11\x69')

        self.device = Mock(spec=Serial)

        self.transport = BaseTransport(device=self.device, callback=_callback)
        self.bytes_array = bytearray(b'\x11\x5A\x01\x00\x2E\xB2\x03\x00\x00')
コード例 #2
0
    def test_no_packet_handler_found(self):

        # Setup - handler for Elec and fallback for the rest.
        parser = BaseTransport(device=self.device, callbacks={
            Elec: _callback2,
        })

        with self.assertRaises(PacketHandlerNotFound):
            parser.get_callback_parser(self.bytes_array)
コード例 #3
0
    def test_no_packet_handler_found(self):

        # Setup - handler for Elec and fallback for the rest.
        parser = BaseTransport(device=self.device,
                               callbacks={
                                   Elec: _callback2,
                               })

        with self.assertRaises(PacketHandlerNotFound):
            parser.get_callback_parser(self.bytes_array)
コード例 #4
0
    def test_get_callback_parser(self):

        # Setup - handler for Elec and fallback for the rest.
        parser = BaseTransport(device=self.device,
                               callbacks={
                                   Elec: _callback2,
                                   '*': _callback,
                               })

        # create a valid elec packet to call with.
        elec_packet = bytearray(self.elec_packet)

        self.assertEquals(parser.get_callback_parser(elec_packet),
                          (_callback2, ANY))
コード例 #5
0
    def test_get_callback_parser(self):

        # Setup - handler for Elec and fallback for the rest.
        parser = BaseTransport(device=self.device, callbacks={
            Elec: _callback2,
            '*': _callback,

        })

        # create a valid elec packet to call with.
        elec_packet = bytearray(self.elec_packet)

        self.assertEquals(
            parser.get_callback_parser(elec_packet),
            (_callback2, ANY)
        )
コード例 #6
0
    def test_do_callback(self):

        callback_mock = Mock()

        # Setup - handler for Elec and fallback for the rest.
        parser = BaseTransport(device=self.device, callbacks={
            Elec: callback_mock,
            '*': _callback,

        })

        # create a valid elec packet to call with.
        elec_packet = bytearray(self.elec_packet)

        parser.do_callback(elec_packet)

        callback_mock.assert_called_once()
コード例 #7
0
    def test_do_callback(self):

        callback_mock = Mock()

        # Setup - handler for Elec and fallback for the rest.
        parser = BaseTransport(device=self.device,
                               callbacks={
                                   Elec: callback_mock,
                                   '*': _callback,
                               })

        # create a valid elec packet to call with.
        elec_packet = bytearray(self.elec_packet)

        parser.do_callback(elec_packet)

        callback_mock.assert_called_once()
コード例 #8
0
    def setUp(self):

        self.elec_packet = (b'\x11\x5A\x01\x00\x2E\xB2\x03\x00\x00'
                            b'\x02\xB4\x00\x00\x0C\x46\xA8\x11\x69')

        self.device = Mock(spec=Serial)

        self.transport = BaseTransport(device=self.device, callback=_callback)
        self.bytes_array = bytearray(b'\x11\x5A\x01\x00\x2E\xB2\x03\x00\x00')
コード例 #9
0
    def test_setup_callbacks_multi(self):

        # Setup - handler for Elec and fallback for the rest.
        parser = BaseTransport(device=self.device,
                               callbacks={
                                   Elec: _callback2,
                                   '*': _callback,
                               })

        # Verify default fallback and callbacks dict contains Elec only.
        self.assertEquals(parser.default_callback, _callback)
        self.assertEquals(parser.callbacks, {Elec: _callback2})
コード例 #10
0
class BaseTransportTestCase(TestCase):

    def setUp(self):

        self.elec_packet = (b'\x11\x5A\x01\x00\x2E\xB2\x03\x00\x00'
                            b'\x02\xB4\x00\x00\x0C\x46\xA8\x11\x69')

        self.device = Mock(spec=Serial)

        self.transport = BaseTransport(device=self.device, callback=_callback)
        self.bytes_array = bytearray(b'\x11\x5A\x01\x00\x2E\xB2\x03\x00\x00')

    def test_constructor(self):

        mock = Mock()
        device = '/dev/serial/...'
        BaseTransport(device, callback=_callback, SerialClass=mock)
        mock.assert_called_once_with(device, 38400, timeout=1)

    def test_format_packet(self):

        bytes_array = bytearray(b'\x11\x5A\x01\x00\x2E\xB2\x03\x00\x00')
        formatted = self.transport.format_packet(bytes_array)
        expected = '0x11 0x5a 0x01 0x00 0x2e 0xb2 0x03 0x00 0x00'

        self.assertEquals(formatted, expected)

    def test_setup_callbacks_single(self):

        self.assertEquals(self.transport.default_callback, _callback)

        self.assertEquals(
            self.transport.get_callback_parser(self.bytes_array),
            (_callback, ANY)
        )

    def test_setup_callbacks_mutli(self):

        # Setup - handler for Elec and fallback for the rest.
        parser = BaseTransport(device=self.device, callbacks={
            Elec: _callback2,
            '*': _callback,

        })

        # Verify default fallback and callbacks dict contains Elec only.
        self.assertEquals(parser.default_callback, _callback)
        self.assertEquals(parser.callbacks, {
            Elec: _callback2
        })

    def test_get_callback_parser(self):

        # Setup - handler for Elec and fallback for the rest.
        parser = BaseTransport(device=self.device, callbacks={
            Elec: _callback2,
            '*': _callback,

        })

        # create a valid elec packet to call with.
        elec_packet = bytearray(self.elec_packet)

        self.assertEquals(
            parser.get_callback_parser(elec_packet),
            (_callback2, ANY)
        )

    def test_no_packet_handler_found(self):

        # Setup - handler for Elec and fallback for the rest.
        parser = BaseTransport(device=self.device, callbacks={
            Elec: _callback2,
        })

        with self.assertRaises(PacketHandlerNotFound):
            parser.get_callback_parser(self.bytes_array)

    def test_no_callbacks(self):

        with self.assertRaises(RFXComException):
            BaseTransport(device=self.device)

    def test_do_callback(self):

        callback_mock = Mock()

        # Setup - handler for Elec and fallback for the rest.
        parser = BaseTransport(device=self.device, callbacks={
            Elec: callback_mock,
            '*': _callback,

        })

        # create a valid elec packet to call with.
        elec_packet = bytearray(self.elec_packet)

        parser.do_callback(elec_packet)

        callback_mock.assert_called_once()

    def test_log(self):

        self.transport.log.debug("test")
        self.assertEquals(self.transport.log.name,
                          'rfxcom.transport.BaseTransport')

    def test_write(self):

        self.transport.write(self.elec_packet)

        self.device.write.assert_called_once_with(bytearray(self.elec_packet))

    def test_reader(self):

        call_map = {
            (): [self.elec_packet[0], ],
            (17, ): self.elec_packet[1:]
        }

        self.device.read = lambda *x: call_map[x]

        self.assertEquals(self.transport.read(), bytearray(self.elec_packet))

    def test_reader_empty(self):

        self.device.read.return_value = ''

        self.assertEquals(self.transport.read(), None)

    def test_read_blank(self):

        self.device.read.return_value = b'\x00'

        self.assertEquals(self.transport.read(), None)
コード例 #11
0
    def test_no_callbacks(self):

        with self.assertRaises(RFXComException):
            BaseTransport(device=self.device)
コード例 #12
0
    def test_constructor(self):

        mock = Mock()
        device = '/dev/serial/...'
        BaseTransport(device, callback=_callback, SerialClass=mock)
        mock.assert_called_once_with(device, 38400, timeout=1)
コード例 #13
0
class BaseTransportTestCase(TestCase):
    def setUp(self):

        self.elec_packet = (b'\x11\x5A\x01\x00\x2E\xB2\x03\x00\x00'
                            b'\x02\xB4\x00\x00\x0C\x46\xA8\x11\x69')

        self.device = Mock(spec=Serial)

        self.transport = BaseTransport(device=self.device, callback=_callback)
        self.bytes_array = bytearray(b'\x11\x5A\x01\x00\x2E\xB2\x03\x00\x00')

    def test_constructor(self):

        mock = Mock()
        device = '/dev/serial/...'
        BaseTransport(device, callback=_callback, SerialClass=mock)
        mock.assert_called_once_with(device, 38400, timeout=1)

    def test_format_packet(self):

        bytes_array = bytearray(b'\x11\x5A\x01\x00\x2E\xB2\x03\x00\x00')
        formatted = self.transport.format_packet(bytes_array)
        expected = '0x11 0x5a 0x01 0x00 0x2e 0xb2 0x03 0x00 0x00'

        self.assertEquals(formatted, expected)

    def test_setup_callbacks_single(self):

        self.assertEquals(self.transport.default_callback, _callback)

        self.assertEquals(self.transport.get_callback_parser(self.bytes_array),
                          (_callback, ANY))

    def test_setup_callbacks_multi(self):

        # Setup - handler for Elec and fallback for the rest.
        parser = BaseTransport(device=self.device,
                               callbacks={
                                   Elec: _callback2,
                                   '*': _callback,
                               })

        # Verify default fallback and callbacks dict contains Elec only.
        self.assertEquals(parser.default_callback, _callback)
        self.assertEquals(parser.callbacks, {Elec: _callback2})

    def test_get_callback_parser(self):

        # Setup - handler for Elec and fallback for the rest.
        parser = BaseTransport(device=self.device,
                               callbacks={
                                   Elec: _callback2,
                                   '*': _callback,
                               })

        # create a valid elec packet to call with.
        elec_packet = bytearray(self.elec_packet)

        self.assertEquals(parser.get_callback_parser(elec_packet),
                          (_callback2, ANY))

    def test_no_packet_handler_found(self):

        # Setup - handler for Elec and fallback for the rest.
        parser = BaseTransport(device=self.device,
                               callbacks={
                                   Elec: _callback2,
                               })

        with self.assertRaises(PacketHandlerNotFound):
            parser.get_callback_parser(self.bytes_array)

    def test_no_callbacks(self):

        with self.assertRaises(RFXComException):
            BaseTransport(device=self.device)

    def test_do_callback(self):

        callback_mock = Mock()

        # Setup - handler for Elec and fallback for the rest.
        parser = BaseTransport(device=self.device,
                               callbacks={
                                   Elec: callback_mock,
                                   '*': _callback,
                               })

        # create a valid elec packet to call with.
        elec_packet = bytearray(self.elec_packet)

        parser.do_callback(elec_packet)

        callback_mock.assert_called_once()

    def test_log(self):

        self.transport.log.debug("test")
        self.assertEquals(self.transport.log.name,
                          'rfxcom.transport.BaseTransport')

    def test_write(self):

        self.transport.write(self.elec_packet)

        self.device.write.assert_called_once_with(bytearray(self.elec_packet))

    def test_reader(self):

        call_map = {
            (): [
                self.elec_packet[0],
            ],
            (17, ): self.elec_packet[1:]
        }

        self.device.read = lambda *x: call_map[x]

        self.assertEquals(self.transport.read(), bytearray(self.elec_packet))

    def test_reader_empty(self):

        self.device.read.return_value = ''

        self.assertEquals(self.transport.read(), None)

    def test_read_blank(self):

        self.device.read.return_value = b'\x00'

        self.assertEquals(self.transport.read(), None)