code: def test_peer_info():
      pi = PeerInfo(PEER_ID, [MADDR])
      assert pi.peer_id == PEER_ID
      assert pi.addrs == [MADDR]
      pi_pb = p2pd_pb.PeerInfo(
          id=PEER_ID.to_bytes(), addrs=[MADDR.to_bytes()]
      )
      pi_1 = PeerInfo.from_protobuf(pi_pb)
      assert pi.peer_id == pi_1.peer_id
      assert pi.addrs == pi_1.addrs
  
imports: import asyncio
  import io
  from contextlib import AsyncExitStack
  import pytest
  from google.protobuf.message import EncodeError
  from multiaddr import Multiaddr, protocols
  from hivemind.p2p.p2p_daemon_bindings.control import ControlClient, DaemonConnector, parse_conn_protocol
  from hivemind.p2p.p2p_daemon_bindings.datastructures import PeerID, PeerInfo, StreamInfo
  from hivemind.p2p.p2p_daemon_bindings.utils import ControlFailure, raise_if_failed, read_pbmsg_safe, read_unsigned_varint, write_pbmsg, write_unsigned_varint
  from hivemind.proto import p2pd_pb2
  from test_utils.p2p_daemon import connect_safe, make_p2pd_pair_unix
label_desc: Use image node_id 5 for calling a global function with example usage: test_peer_info() without return types