def METHOD_NAME(self):
    no_version_bannode = self.nodes[0].add_p2p_connection(
        CNodeNoVersionBan(), send_version=False, wait_for_verack=False
    )
    no_version_idlenode = self.nodes[0].add_p2p_connection(
        CNodeNoVersionIdle(), send_version=False, wait_for_verack=False
    )
    no_verack_idlenode = self.nodes[0].add_p2p_connection(CNodeNoVerackIdle())
    wait_until(
        lambda: no_version_bannode.ever_connected, timeout=10, lock=mininode_lock
    )
    wait_until(
        lambda: no_version_idlenode.ever_connected, timeout=10, lock=mininode_lock
    )
    wait_until(
        lambda: no_verack_idlenode.version_received, timeout=10, lock=mininode_lock
    )
    # Mine a block and make sure that it's not sent to the connected nodes
    self.nodes[0].generate(1)
    # Give the node enough time to possibly leak out a message
    time.sleep(5)
    # This node should have been banned
    assert not no_version_bannode.is_connected
    self.nodes[0].disconnect_p2ps()
    # Wait until all connections are closed
    wait_until(lambda: len(self.nodes[0].getpeerinfo()) == 0)
    # Make sure no unexpected messages came in
    assert no_version_bannode.unexpected_msg == False
    assert no_version_idlenode.unexpected_msg == False
    assert no_verack_idlenode.unexpected_msg == False