tests: add P2PConnection.send_raw_message

This commit is contained in:
James O'Beirne 2018-10-19 13:34:28 -04:00
parent 5aa31f6ef2
commit 62f94d39f8

View file

@ -175,10 +175,13 @@ class P2PConnection(asyncio.Protocol):
This method takes a P2P payload, builds the P2P header and adds This method takes a P2P payload, builds the P2P header and adds
the message to the send buffer to be sent over the socket.""" the message to the send buffer to be sent over the socket."""
tmsg = self.build_message(message)
self._log_message("send", message)
return self.send_raw_message(tmsg)
def send_raw_message(self, raw_message_bytes):
if not self.is_connected: if not self.is_connected:
raise IOError('Not connected') raise IOError('Not connected')
self._log_message("send", message)
tmsg = self._build_message(message)
def maybe_write(): def maybe_write():
if not self._transport: if not self._transport:
@ -188,12 +191,12 @@ class P2PConnection(asyncio.Protocol):
# Python 3.4 versions. # Python 3.4 versions.
if hasattr(self._transport, 'is_closing') and self._transport.is_closing(): if hasattr(self._transport, 'is_closing') and self._transport.is_closing():
return return
self._transport.write(tmsg) self._transport.write(raw_message_bytes)
NetworkThread.network_event_loop.call_soon_threadsafe(maybe_write) NetworkThread.network_event_loop.call_soon_threadsafe(maybe_write)
# Class utility methods # Class utility methods
def _build_message(self, message): def build_message(self, message):
"""Build a serialized P2P message""" """Build a serialized P2P message"""
command = message.command command = message.command
data = message.serialize() data = message.serialize()
@ -376,9 +379,9 @@ class P2PInterface(P2PConnection):
# Message sending helper functions # Message sending helper functions
def send_and_ping(self, message): def send_and_ping(self, message, timeout=60):
self.send_message(message) self.send_message(message)
self.sync_with_ping() self.sync_with_ping(timeout=timeout)
# Sync up with the node # Sync up with the node
def sync_with_ping(self, timeout=60): def sync_with_ping(self, timeout=60):