def test_protocol_with_code(): proto = protocols.protocol_with_code(protocols.P_IP4) assert proto.name == 'ip4' assert proto.code == protocols.P_IP4 with pytest.raises(ValueError): proto = protocols.protocol_with_code(1234)
def test_protocol_with_code(): proto = protocols.protocol_with_code(protocols.P_IP4) assert proto.name == 'ip4' assert proto.code == protocols.P_IP4 assert proto.size == 32 assert proto.vcode == varint.encode(protocols.P_IP4) assert hash(proto) == protocols.P_IP4 with pytest.raises(exceptions.ProtocolNotFoundError): proto = protocols.protocol_with_code(1234)
def test_protocol_equality(): proto1 = protocols.protocol_with_name('ip4') proto2 = protocols.protocol_with_code(protocols.P_IP4) proto3 = protocols.protocol_with_name('onion') assert proto1 == proto2 assert proto1 != proto3
def parse_conn_protocol(maddr: Multiaddr) -> int: proto_codes = set(proto.code for proto in maddr.protocols()) proto_cand = proto_codes.intersection(_supported_conn_protocols) if len(proto_cand) != 1: supported_protos = (protocols.protocol_with_code(proto) for proto in _supported_conn_protocols) raise ValueError( f"connection protocol should be only one protocol out of {supported_protos}" f", maddr={maddr}") return tuple(proto_cand)[0]
def test_protocol_equality(): proto1 = protocols.protocol_with_name('ip4') proto2 = protocols.protocol_with_code(protocols.P_IP4) proto3 = protocols.protocol_with_name('onion') proto4 = protocols.protocol_with_name('onion3') assert proto1 == proto2 assert proto1 != proto3 assert proto3 != proto4 assert proto1 is not None assert proto2 != str(proto2)
from hivemind.p2p.p2p_daemon_bindings.utils import (DispatchFailure, raise_if_failed, read_pbmsg_safe, write_pbmsg) from hivemind.proto import p2pd_pb2 as p2pd_pb from hivemind.utils.logging import get_logger StreamHandler = Callable[[StreamInfo, asyncio.StreamReader, asyncio.StreamWriter], Awaitable[None]] SUPPORT_CONN_PROTOCOLS = ( protocols.P_IP4, # protocols.P_IP6, protocols.P_UNIX, ) SUPPORTED_PROTOS = ( protocols.protocol_with_code(proto) for proto in SUPPORT_CONN_PROTOCOLS ) logger = get_logger(__name__) def parse_conn_protocol(maddr: Multiaddr) -> int: proto_codes = set(proto.code for proto in maddr.protocols()) proto_cand = proto_codes.intersection(SUPPORT_CONN_PROTOCOLS) if len(proto_cand) != 1: raise ValueError( f"connection protocol should be only one protocol out of {SUPPORTED_PROTOS}" f", maddr={maddr}" ) return tuple(proto_cand)[0]