code: def test_get_app_handle_basic(serve_instance):
      @serve.deployment(ray_actor_options={"num_cpus": 0.1})
      class M:
          def __call__(self, val: int):
              return val + 1
  
      @serve.deployment(ray_actor_options={"num_cpus": 0.1})
      def f():
          return "hello world"
  
      @serve.deployment(ray_actor_options={"num_cpus": 0.1})
      class MyDriver:
          def __init__(self, handle):
              self._h = handle.options(use_new_handle_api=True)
  
          async def __call__(self):
              return await self._h.remote()
  
      serve.run(M.bind(), name="A", route_prefix="/a")
      serve.run(MyDriver.bind(f.bind()), name="B", route_prefix="/b")
  
      handle = serve.get_app_handle("A")
      assert handle.remote(8).result() == 9
  
      handle = serve.get_app_handle("B")
      assert handle.remote().result() == "hello world"
  
imports: import asyncio
  import os
  import sys
  from typing import Dict, Optional
  import pytest
  import requests
  import starlette.responses
  from fastapi import FastAPI
  import ray
  from ray import serve
  from ray._private.pydantic_compat import BaseModel, ValidationError
  from ray._private.test_utils import SignalActor, wait_for_condition
  from ray.serve._private.api import call_app_builder_with_args_if_necessary
  from ray.serve._private.common import DeploymentID
  from ray.serve._private.constants import SERVE_DEFAULT_APP_NAME
  from ray.serve.deployment import Application
  from ray.serve.exceptions import RayServeException
  from ray.serve.handle import DeploymentHandle, RayServeHandle
label_desc: Use image node_id 30 for calling a global function with example usage: test_get_app_handle_basic(serve_instance) and returns: str, unknown, unknown