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, ''))()
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']
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
def _read_message(sock): input = Deframer() while True: for contents in input.push(sock.recv(1)): message = parse_message(MultiplexerMessage, contents) return message