示例#1
0
def test_deserialize():
    for case in encoded_messages:
        msg = parse_message(MultiplexerMessage, case['encoded'])
        assert dict((field.name, value) for field, value in msg.ListFields()) \
                == case['pythonized'] == dict_message(msg, all_fields=False)

    raises(DecodeError)(lambda: parse_message(VariousFields, ''))()
示例#2
0
    def test_send_message(self):
        for case in encoded_messages:
            self._channel.send(parse_message(MultiplexerMessage,
                case['encoded']))

            assert dict_message(self._server_channel.receive()) == \
                    case['pythonized']
示例#3
0
def test_from():
    # Check that ``from_`` and ``from`` can be used interchangeably.
    msg = MultiplexerMessage()
    msg.from_ = 10
    assert getattr(msg, 'from') == 10
    setattr(msg, 'from', 20)
    assert msg.from_ == 20

    # Check that the value assigned via ``from_`` is properly serialized.
    msg = MultiplexerMessage()
    msg.from_ = 15
    assert msg.SerializePartialToString() == '\x10\x0f'

    # Check hat the deserialized ``from`` can be read via ``from_``.
    assert parse_message(MultiplexerMessage, '\x10\x0f', partial=True).from_ == 15
示例#4
0
 def _read_message(sock):
     input = Deframer()
     while True:
         for contents in input.push(sock.recv(1)):
             message = parse_message(MultiplexerMessage, contents)
             return message