Exemple #1
0
def test_validate_enode_require_ip(uri, should_fail):
    if should_fail:
        message = "A concrete IP address must be specified"
        with pytest.raises(ValidationError, match=message):
            validate_enode_uri(uri, require_ip=True)
    else:
        validate_enode_uri(uri, require_ip=True)
Exemple #2
0
    def __call__(self,
                 parser: argparse.ArgumentParser,
                 namespace: argparse.Namespace,
                 value: Any,
                 option_string: str = None) -> None:
        if value is None:
            return

        validate_enode_uri(value)

        enode = Node.from_uri(value)

        if getattr(namespace, self.dest) is None:
            setattr(namespace, self.dest, [])
        enode_list = getattr(namespace, self.dest)
        enode_list.append(enode)
Exemple #3
0
    async def addPeer(self, node: str) -> None:
        validate_enode_uri(node, require_ip=True)

        self.event_bus.broadcast(ConnectToNodeCommand(node),
                                 TO_NETWORKING_BROADCAST_CONFIG)
Exemple #4
0
 def from_uri(cls, uri: str) -> 'Node':
     validate_enode_uri(uri)  # Be no more permissive than the validation
     parsed = urlparse.urlparse(uri)
     pubkey = keys.PublicKey(decode_hex(parsed.username))
     return cls(pubkey, Address(parsed.hostname, parsed.port))
Exemple #5
0
def test_validate_enode_success(uri):
    validate_enode_uri(uri)
Exemple #6
0
def test_validate_enode_failures(uri, message):
    with pytest.raises(ValidationError, match=message):
        validate_enode_uri(uri)