コード例 #1
0
class TempHumidityTestCase(TestCase):

    def setUp(self):

        self.data = bytearray(b'\x0A\x52\x02\x11\x70\x02\x00\xA7'
                              b'\x2D\x00\x89')
        self.parser = TempHumidity()

    def test_parse_bytes(self):

        self.assertTrue(self.parser.validate_packet(self.data))
        self.assertTrue(self.parser.can_handle(self.data))
        result = self.parser.load(self.data)

        self.assertEquals(result, {
            'packet_length': 10,
            'packet_type': 82,
            'packet_type_name': 'Temperature and humidity sensors',
            'sequence_number': 17,
            'packet_subtype': 2,
            'packet_subtype_name': 'THGR810, THGN801, THGN800',
            'temperature': 16.7,
            'id': '0x7002',
            'channel': 2,
            'signal_level': 8,
            'humidity': 45,
            'humidity_status': 'Dry',
            'battery_level': 9
        })

        self.assertEquals(str(self.parser), "<TempHumidity ID:0x7002>")

    def test_parse_bytes2(self):

        self.data = bytearray(b'\x0A\x52\x02\x02\xAE\x01\x00\x63'
                              b'\x62\x03\x59')

        self.assertTrue(self.parser.validate_packet(self.data))
        self.assertTrue(self.parser.can_handle(self.data))
        result = self.parser.load(self.data)

        self.assertEquals(result, {
            'packet_length': 10,
            'packet_type': 82,
            'packet_type_name': 'Temperature and humidity sensors',
            'sequence_number': 2,
            'packet_subtype': 2,
            'packet_subtype_name': 'THGR810, THGN801, THGN800',
            'temperature': 9.9,
            'id': '0xAE01',
            'channel': 1,
            'signal_level': 5,
            'humidity': 98,
            'humidity_status': 'Wet',
            'battery_level': 9
        })

        self.assertEquals(str(self.parser), "<TempHumidity ID:0xAE01>")

    def test_parse_bytes_negative_temp(self):

        self.data = bytearray(b'\x0A\x52\x02\x11\x70\x02\x80\xA7'
                              b'\x2D\x00\x89')

        self.assertTrue(self.parser.validate_packet(self.data))
        self.assertTrue(self.parser.can_handle(self.data))
        result = self.parser.load(self.data)

        self.assertEquals(result['temperature'], -16.7)

    def test_validate_bytes_short(self):

        data = self.data[:1]

        with self.assertRaises(InvalidPacketLength):
            self.parser.validate_packet(data)

    def test_validate_unkown_packet_type(self):

        self.data[1] = 0xFF

        self.assertFalse(self.parser.can_handle(self.data))

        with self.assertRaises(UnknownPacketType):
            self.parser.validate_packet(self.data)

    def test_validate_unknown_sub_type(self):

        self.data[2] = 0xEE

        self.assertFalse(self.parser.can_handle(self.data))

        with self.assertRaises(UnknownPacketSubtype):
            self.parser.validate_packet(self.data)

    def test_log_name(self):

        self.assertEquals(self.parser.log.name, 'rfxcom.protocol.TempHumidity')
コード例 #2
0
    def setUp(self):

        self.data = bytearray(b'\x0A\x52\x02\x11\x70\x02\x00\xA7'
                              b'\x2D\x00\x89')
        self.parser = TempHumidity()
コード例 #3
0
    def setUp(self):

        self.data = bytearray(b'\x0A\x52\x02\x11\x70\x02\x00\xA7'
                              b'\x2D\x00\x89')
        self.parser = TempHumidity()
コード例 #4
0
class TempHumidityTestCase(TestCase):
    def setUp(self):

        self.data = bytearray(b'\x0A\x52\x02\x11\x70\x02\x00\xA7'
                              b'\x2D\x00\x89')
        self.parser = TempHumidity()

    def test_parse_bytes(self):

        self.assertTrue(self.parser.validate_packet(self.data))
        self.assertTrue(self.parser.can_handle(self.data))
        result = self.parser.load(self.data)

        self.assertEquals(
            result, {
                'packet_length': 10,
                'packet_type': 82,
                'packet_type_name': 'Temperature and humidity sensors',
                'sequence_number': 17,
                'packet_subtype': 2,
                'packet_subtype_name': 'THGR810, THGN801, THGN800',
                'temperature': 16.7,
                'id': '0x7002',
                'channel': 2,
                'signal_level': 8,
                'humidity': 45,
                'humidity_status': 'Dry',
                'battery_level': 9
            })

        self.assertEquals(str(self.parser), "<TempHumidity ID:0x7002>")

    def test_parse_bytes2(self):

        self.data = bytearray(b'\x0A\x52\x02\x02\xAE\x01\x00\x63'
                              b'\x62\x03\x59')

        self.assertTrue(self.parser.validate_packet(self.data))
        self.assertTrue(self.parser.can_handle(self.data))
        result = self.parser.load(self.data)

        self.assertEquals(
            result, {
                'packet_length': 10,
                'packet_type': 82,
                'packet_type_name': 'Temperature and humidity sensors',
                'sequence_number': 2,
                'packet_subtype': 2,
                'packet_subtype_name': 'THGR810, THGN801, THGN800',
                'temperature': 9.9,
                'id': '0xAE01',
                'channel': 1,
                'signal_level': 5,
                'humidity': 98,
                'humidity_status': 'Wet',
                'battery_level': 9
            })

        self.assertEquals(str(self.parser), "<TempHumidity ID:0xAE01>")

    def test_parse_bytes_negative_temp(self):

        self.data = bytearray(b'\x0A\x52\x02\x11\x70\x02\x80\xA7'
                              b'\x2D\x00\x89')

        self.assertTrue(self.parser.validate_packet(self.data))
        self.assertTrue(self.parser.can_handle(self.data))
        result = self.parser.load(self.data)

        self.assertEquals(result['temperature'], -16.7)

    def test_validate_bytes_short(self):

        data = self.data[:1]

        with self.assertRaises(InvalidPacketLength):
            self.parser.validate_packet(data)

    def test_validate_unkown_packet_type(self):

        self.data[1] = 0xFF

        self.assertFalse(self.parser.can_handle(self.data))

        with self.assertRaises(UnknownPacketType):
            self.parser.validate_packet(self.data)

    def test_validate_unknown_sub_type(self):

        self.data[2] = 0xEE

        self.assertFalse(self.parser.can_handle(self.data))

        with self.assertRaises(UnknownPacketSubtype):
            self.parser.validate_packet(self.data)

    def test_log_name(self):

        self.assertEquals(self.parser.log.name, 'rfxcom.protocol.TempHumidity')