def test_envelope_message_bytes(): """Test the property Envelope.message_bytes.""" message = DefaultMessage(DefaultMessage.Performative.BYTES, content=b"message") envelope = Envelope( to="to", sender="sender", message=message, ) expected_message_bytes = message.encode() actual_message_bytes = envelope.message_bytes assert expected_message_bytes == actual_message_bytes
def test_envelope_message_bytes(): """Test the property Envelope.message_bytes.""" message = DefaultMessage(DefaultMessage.Performative.BYTES, content=b"message") envelope = Envelope( to="to", sender="sender", protocol_id=PublicId("author", "name", "0.1.0"), message=message, ) expected_message_bytes = message.encode() actual_message_bytes = envelope.message_bytes assert expected_message_bytes == actual_message_bytes
def _handle_unidentified_dialogue(self, message: DefaultMessage) -> None: """ Handle unidentified dialogue. :param message: the message. :return: None """ self.context.logger.info( "received invalid default message={}, unidentified dialogue.". format(message)) default_dialogues = cast(DefaultDialogues, self.context.default_dialogues) reply, _ = default_dialogues.create( counterparty=message.sender, performative=DefaultMessage.Performative.ERROR, dialogue_reference=default_dialogues. new_self_initiated_dialogue_reference(), error_code=DefaultMessage.ErrorCode.INVALID_DIALOGUE, error_msg="Invalid dialogue.", error_data={"default_message": message.encode()}, ) self.context.outbox.put_message(message=reply)
def test_envelope_routed_after_peer_changed(self): """Test envelope routed after peer changed.""" addr_1 = self.connection1.address addr_2 = self.connection2.address msg = DefaultMessage( dialogue_reference=("", ""), message_id=1, target=0, performative=DefaultMessage.Performative.BYTES, content=b"hello", ) envelope = Envelope( to=addr_2, sender=addr_1, protocol_id=DefaultMessage.protocol_id, message=DefaultSerializer().encode(msg), ) self.multiplexer1.put(envelope) delivered_envelope = self.multiplexer2.get(block=True, timeout=20) assert delivered_envelope is not None assert delivered_envelope.to == envelope.to assert delivered_envelope.sender == envelope.sender assert delivered_envelope.protocol_id == envelope.protocol_id assert delivered_envelope.message_bytes == envelope.message_bytes self.multiplexer2.disconnect() TestLibp2pConnectionAgentMobility.connection2 = _make_libp2p_connection( port=DEFAULT_PORT + 2, entry_peers=[self.genesis.node.multiaddrs[0]], agent_address=self.connection_addr, ) TestLibp2pConnectionAgentMobility.multiplexer2 = Multiplexer( [self.connection2]) self.multiplexer2.connect() TestLibp2pConnectionAgentMobility.multiplexers.append( self.multiplexer2) time.sleep(3) msg = DefaultMessage( dialogue_reference=("", ""), message_id=1, target=0, performative=DefaultMessage.Performative.BYTES, content=b"helloAfterChangingPeer", ) envelope = Envelope( to=addr_2, sender=addr_1, protocol_id=msg.protocol_id, message=msg.encode(), ) self.multiplexer1.put(envelope) delivered_envelope = self.multiplexer2.get(block=True, timeout=20) assert delivered_envelope is not None assert delivered_envelope.to == envelope.to assert delivered_envelope.sender == envelope.sender assert delivered_envelope.protocol_id == envelope.protocol_id assert delivered_envelope.message_bytes == envelope.message_bytes
def test_envelope_routed_after_peer_changed(self): """Test envelope routed after peer changed.""" addr_1 = self.connection1.address addr_2 = self.connection2.address msg = DefaultMessage( dialogue_reference=("", ""), message_id=1, target=0, performative=DefaultMessage.Performative.BYTES, content=b"hello", ) envelope = Envelope( to=addr_2, sender=addr_1, protocol_specification_id=DefaultMessage.protocol_specification_id, message=DefaultSerializer().encode(msg), ) self.multiplexer1.put(envelope) delivered_envelope = self.multiplexer2.get(block=True, timeout=20) assert delivered_envelope is not None assert delivered_envelope.to == envelope.to assert delivered_envelope.sender == envelope.sender assert (delivered_envelope.protocol_specification_id == envelope.protocol_specification_id) assert delivered_envelope.message_bytes == envelope.message_bytes self.multiplexer2.disconnect() self.change_state_and_wait(self.multiplexer2, expected_is_connected=False) # currently, multiplexer cannot be restarted self.multiplexer2 = Multiplexer([self.connection2], protocols=[DefaultMessage]) self.multiplexer2.connect() self.change_state_and_wait(self.multiplexer2, expected_is_connected=True) self.multiplexers.append(self.multiplexer2) msg = DefaultMessage( dialogue_reference=("", ""), message_id=1, target=0, performative=DefaultMessage.Performative.BYTES, content=b"helloAfterChangingPeer", ) envelope = Envelope( to=addr_2, sender=addr_1, protocol_specification_id=msg.protocol_specification_id, message=msg.encode(), ) self.multiplexer1.put(envelope) delivered_envelope = self.multiplexer2.get(block=True, timeout=20) assert delivered_envelope is not None assert delivered_envelope.to == envelope.to assert delivered_envelope.sender == envelope.sender assert (delivered_envelope.protocol_specification_id == envelope.protocol_specification_id) assert delivered_envelope.message_bytes == envelope.message_bytes