Ejemplo n.º 1
0
    def test_encode_field_signature(self):
        tmp = Message()

        self.assertEqual(tmp._encode_field_signature(0, 1), b'\x08')
        self.assertEqual(tmp._encode_field_signature(2, 2, 7), b'\x12\x07')
        self.assertRaises(ValueError, tmp._encode_field_signature, 10, 1)
        self.assertRaises(AssertionError, tmp._encode_field_signature, 2, 2)
Ejemplo n.º 2
0
    def test_parse_from_bytes(self):
        tmp = Message()

        data = [0x08, 0x96, 0x01]
        expected_message = {1: [WireField(type=FIELD_VARINT, value=150)]}
        tmp.parse_from_bytes(data)
        self.assertDictEqual(tmp._Message__wire_message, expected_message)
Ejemplo n.º 3
0
    def test_get_wire_values(self):
        tmp = Message()

        data = [0x08, 0x96, 0x01]
        tmp.parse_from_bytes(data)
        self.assertEqual(tmp._get_wire_values(1),
                         [WireField(type=FIELD_VARINT, value=150)])
Ejemplo n.º 4
0
    def test_encode_varint(self):
        tmp = Message()

        self.assertEqual(tmp._encode_varint(0), b'\x00')
        self.assertEqual(tmp._encode_varint(1), b'\x01')
        self.assertEqual(tmp._encode_varint(150), b'\x96\x01')
        self.assertEqual(tmp._encode_varint(300), b'\xAC\x02')
Ejemplo n.º 5
0
    def test_decode_varint(self):
        tmp = Message()
        data = bytes([0b00000000])
        self.assertEqual(tmp._decode_varint(data), 0)

        tmp = Message()
        data = bytes([0b00000001])
        self.assertEqual(tmp._decode_varint(data), 1)

        tmp = Message()
        data = bytes([0b10010110, 0b00000001])
        self.assertEqual(tmp._decode_varint(data), 150)

        tmp = Message()
        data = bytes([0b10101100, 0b00000010])
        self.assertEqual(tmp._decode_varint(data), 300)
Ejemplo n.º 6
0
    def test_decode_field_signature(self):
        tmp = Message()
        data = bytes([0b0001000])
        self.assertEqual(tmp._decode_field_signature(data), (0, 1, None))

        tmp = Message()
        data = bytes([0x12, 0x07])
        self.assertEqual(tmp._decode_field_signature(data), (2, 2, 7))

        tmp = Message()
        data = bytes([0b00001011])
        self.assertRaises(NotImplementedError, tmp._decode_field_signature,
                          data)

        tmp = Message()
        data = bytes([0b00001111])
        self.assertRaises(ValueError, tmp._decode_field_signature, data)
Ejemplo n.º 7
0
    def test_decode_varint(self):
        tmp = Message()

        data = [0b00000001]
        self.assertEqual(tmp._decode_varint(iter(data)), 1)

        data = [0b10010110, 0b00000001]
        self.assertEqual(tmp._decode_varint(iter(data)), 150)

        data = [0b10101100, 0b00000010]
        self.assertEqual(tmp._decode_varint(iter(data)), 300)
Ejemplo n.º 8
0
    def test_decode_raw_message(self):
        # FIELD_VARINT
        tmp = Message()
        data = [0x08, 0x96, 0x01]
        expected_message = {1: [WireField(type=FIELD_VARINT, value=150)]}
        tmp._decode_raw_message(iter(data))
        self.assertDictEqual(tmp._Message__wire_message, expected_message)

        # FIELD_FIXED64
        tmp = Message()
        data = [0x09, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08]
        expected_message = {
            1: [
                WireField(type=FIELD_FIXED64,
                          value=b'\x01\x02\x03\x04\x05\x06\x07\x08')
            ]
        }
        tmp._decode_raw_message(iter(data))
        self.assertDictEqual(tmp._Message__wire_message, expected_message)

        # FIELD_VARIABLE_LENGTH
        tmp = Message()
        data = [0x12, 0x07, 0x74, 0x65, 0x73, 0x74, 0x69, 0x6E, 0x67]
        expected_message = {
            2: [WireField(type=FIELD_VARIABLE_LENGTH, value=b'testing')]
        }
        tmp._decode_raw_message(iter(data))
        self.assertDictEqual(tmp._Message__wire_message, expected_message)

        # FIELD_FIXED32
        tmp = Message()
        data = [0x0D, 0x01, 0x02, 0x03, 0x04]
        expected_message = {
            1: [WireField(type=FIELD_FIXED32, value=b'\x01\x02\x03\x04')]
        }
        tmp._decode_raw_message(iter(data))
        self.assertDictEqual(tmp._Message__wire_message, expected_message)
Ejemplo n.º 9
0
    def test_decode_repeated_field_with_different_types(self):
        raw_message = [0x08, 0x96, 0x01, 0x0D, 0x01, 0x02, 0x03, 0x04]

        msg = Message()
        self.assertRaises(ValueError, msg.parse_from_bytes, raw_message)
Ejemplo n.º 10
0
    def test_encode_to_bytes_varint(self):
        msg = Message()
        msg.parse_from_bytes(b'\x08\x96\x01')

        self.assertEqual(msg.encode_to_bytes(), b'\x08\x96\x01')
Ejemplo n.º 11
0
    def test_set_wire_values(self):
        tmp = Message()

        tmp._set_wire_values(1, FIELD_VARINT, 150)
        self.assertDictEqual(tmp._Message__wire_message,
                             {1: [WireField(type=FIELD_VARINT, value=150)]})