def test_protocol_with_name(): proto = protocols.protocol_with_name('ip4') assert proto.name == 'ip4' assert proto.code == protocols.P_IP4 with pytest.raises(ValueError): proto = protocols.protocol_with_name('foo')
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 test_protocol_with_name(): proto = protocols.protocol_with_name('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_name('foo')
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)
def test_get_value(): ma = Multiaddr( "/ip4/127.0.0.1/utp/tcp/5555/udp/1234/utp/" "p2p/bafzbeigalb34xlqdtvyklzqa5ibmn6pssqsdskc4ty2e4jxy2kamquh22y") assert_value_for_proto(ma, P_IP4, "127.0.0.1") assert_value_for_proto(ma, P_UTP, None) assert_value_for_proto(ma, P_TCP, "5555") assert_value_for_proto(ma, P_UDP, "1234") assert_value_for_proto(ma, P_P2P, "QmbHVEEepCi7rn7VL7Exxpd2Ci9NNB6ifvqwhsrbRMgQFP") assert_value_for_proto(ma, "ip4", "127.0.0.1") assert_value_for_proto(ma, "utp", None) assert_value_for_proto(ma, "tcp", "5555") assert_value_for_proto(ma, "udp", "1234") assert_value_for_proto(ma, protocol_with_name("ip4"), "127.0.0.1") assert_value_for_proto(ma, protocol_with_name("utp"), None) assert_value_for_proto(ma, protocol_with_name("tcp"), "5555") assert_value_for_proto(ma, protocol_with_name("udp"), "1234") with pytest.raises(ProtocolLookupError): ma.value_for_protocol(P_IP6) with pytest.raises(ProtocolLookupError): ma.value_for_protocol("ip6") with pytest.raises(ProtocolLookupError): ma.value_for_protocol(protocol_with_name("ip6")) a = Multiaddr(b"\x35\x03a:b") # invalid protocol value with pytest.raises(BinaryParseError): a.value_for_protocol(P_DNS) a = Multiaddr("/ip4/0.0.0.0") # only one addr assert_value_for_proto(a, P_IP4, "0.0.0.0") a = Multiaddr("/ip4/0.0.0.0/ip4/0.0.0.0/ip4/0.0.0.0") # same sub-addr assert_value_for_proto(a, P_IP4, "0.0.0.0") a = Multiaddr("/ip4/0.0.0.0/udp/12345/utp") # ending in a no-value one. assert_value_for_proto(a, P_IP4, "0.0.0.0") assert_value_for_proto(a, P_UDP, "12345") assert_value_for_proto(a, P_UTP, None) a = Multiaddr("/ip4/0.0.0.0/unix/a/b/c/d") # ending in a path one. assert_value_for_proto(a, P_IP4, "0.0.0.0") assert_value_for_proto(a, P_UNIX, "/a/b/c/d") a = Multiaddr("/unix/studio") assert_value_for_proto(a, P_UNIX, "/studio") # only a path.
def test_get_value(): ma = Multiaddr( "/ip4/127.0.0.1/utp/tcp/5555/udp/1234/utp/" "p2p/QmbHVEEepCi7rn7VL7Exxpd2Ci9NNB6ifvqwhsrbRMgQFP") assert_value_for_proto(ma, P_IP4, "127.0.0.1") assert_value_for_proto(ma, P_UTP, "") assert_value_for_proto(ma, P_TCP, "5555") assert_value_for_proto(ma, P_UDP, "1234") assert_value_for_proto( ma, P_P2P, "QmbHVEEepCi7rn7VL7Exxpd2Ci9NNB6ifvqwhsrbRMgQFP") assert_value_for_proto(ma, "ip4", "127.0.0.1") assert_value_for_proto(ma, "utp", "") assert_value_for_proto(ma, "tcp", "5555") assert_value_for_proto(ma, "udp", "1234") assert_value_for_proto(ma, protocol_with_name("ip4"), "127.0.0.1") assert_value_for_proto(ma, protocol_with_name("utp"), "") assert_value_for_proto(ma, protocol_with_name("tcp"), "5555") assert_value_for_proto(ma, protocol_with_name("udp"), "1234") with pytest.raises(ProtocolLookupError): ma.value_for_protocol(P_IP6) with pytest.raises(ProtocolLookupError): ma.value_for_protocol("ip6") with pytest.raises(ProtocolLookupError): ma.value_for_protocol(protocol_with_name("ip6")) a = Multiaddr(b"\x35\x03a:b") # invalid protocol value with pytest.raises(BinaryParseError): a.value_for_protocol(P_DNS) a = Multiaddr("/ip4/0.0.0.0") # only one addr assert_value_for_proto(a, P_IP4, "0.0.0.0") a = Multiaddr("/ip4/0.0.0.0/ip4/0.0.0.0/ip4/0.0.0.0") # same sub-addr assert_value_for_proto(a, P_IP4, "0.0.0.0") a = Multiaddr("/ip4/0.0.0.0/udp/12345/utp") # ending in a no-value one. assert_value_for_proto(a, P_IP4, "0.0.0.0") assert_value_for_proto(a, P_UDP, "12345") assert_value_for_proto(a, P_UTP, "") a = Multiaddr("/ip4/0.0.0.0/unix/a/b/c/d") # ending in a path one. assert_value_for_proto(a, P_IP4, "0.0.0.0") assert_value_for_proto(a, P_UNIX, "/a/b/c/d") a = Multiaddr("/unix/studio") assert_value_for_proto(a, P_UNIX, "/studio") # only a path.
def test_protocols(): ma = Multiaddr("/ip4/127.0.0.1/udp/1234") protos = ma.protocols() assert protos[0].code == protocol_with_name("ip4").code assert protos[1].code == protocol_with_name("udp").code
split_m = split(mm) for i, addr in enumerate(split_m): assert str(addr) == expected[i] joined = join(split_m) assert mm == joined def test_protocols(): ma = Multiaddr("/ip4/127.0.0.1/udp/1234") protos = ma.protocols() assert protos[0].code == protocol_with_name("ip4").code assert protos[1].code == protocol_with_name("udp").code @pytest.mark.parametrize('proto_string,expected', [ ("/ip4", [protocol_with_name("ip4")]), ("/ip4/tcp", [protocol_with_name("ip4"), protocol_with_name("tcp")]), ("ip4/tcp/udp/ip6", [ protocol_with_name("ip4"), protocol_with_name("tcp"), protocol_with_name("udp"), protocol_with_name("ip6") ]), ("////////ip4/tcp", [protocol_with_name("ip4"), protocol_with_name("tcp")]), ("ip4/udp/////////", [protocol_with_name("ip4"), protocol_with_name("udp")]), ("////////ip4/tcp////////", [protocol_with_name("ip4"),
def test_protocols_with_string(names): expected = [protocols.protocol_with_name(name) for name in names] ins = "/".join(names) assert protocols.protocols_with_string(ins) == expected assert protocols.protocols_with_string("/" + ins) == expected assert protocols.protocols_with_string("/" + ins + "/") == expected
def test_protocol_repr(): proto = protocols.protocol_with_name('ip4') assert "Protocol(code=4, name='ip4', size=32)" == repr(proto)
assert m2 == m4 assert m4 == m2 assert m3 == m4 assert m4 == m3 def test_protocols(): ma = Multiaddr("/ip4/127.0.0.1/udp/1234") protos = ma.protocols() assert protos[0].code == protocol_with_name("ip4").code assert protos[1].code == protocol_with_name("udp").code @pytest.mark.parametrize( 'proto_string,expected', [("/ip4", [protocol_with_name("ip4")]), ("/ip4/tcp", [protocol_with_name("ip4"), protocol_with_name("tcp")]), ("ip4/tcp/udp/ip6", [protocol_with_name("ip4"), protocol_with_name("tcp"), protocol_with_name("udp"), protocol_with_name("ip6")]), ("////////ip4/tcp", [protocol_with_name("ip4"), protocol_with_name("tcp")]), ("ip4/udp/////////", [protocol_with_name("ip4"), protocol_with_name("udp")]), ("////////ip4/tcp////////", [protocol_with_name("ip4"), protocol_with_name("tcp")]), ("////////ip4/////////tcp////////", [protocol_with_name("ip4"), protocol_with_name("tcp")])]) def test_protocols_with_string(proto_string, expected):