code: def test_deploy_basic(ray_start_stop):
      """Deploys some valid config files and checks that the deployments work."""
      # Initialize serve in test to enable calling serve.list_deployments()
      ray.init(address="auto", namespace=SERVE_NAMESPACE)
  
      # Create absolute file names to YAML config files
      pizza_file_name = os.path.join(
          os.path.dirname(__file__), "test_config_files", "pizza.yaml"
      )
      arithmetic_file_name = os.path.join(
          os.path.dirname(__file__),
          "test_config_files",
          "arithmetic.yaml",
      )
  
      success_message_fragment = b"Sent deploy request successfully."
  
      # Ensure the CLI is idempotent
      num_iterations = 2
      for iteration in range(1, num_iterations + 1):
          print(
              f"*** Starting Iteration {iteration}/{num_iterations} ***\n"
          )
  
          print("Deploying pizza config.")
          deploy_response = subprocess.check_output(
              ["serve", "deploy", pizza_file_name]
          )
          assert success_message_fragment in deploy_response
          print("Deploy request sent successfully.")
  
          wait_for_condition(
              check_http_response,
              json=["ADD", 2],
              expected_text="3 pizzas please!",
              timeout=15,
          )
          wait_for_condition(
              check_http_response,
              json=["MUL", 2],
              expected_text="-4 pizzas please!",
              timeout=15,
          )
          print("Deployments are reachable over HTTP.")
  
          deployments = [
              DeploymentID("Router", SERVE_DEFAULT_APP_NAME),
              DeploymentID("Multiplier", SERVE_DEFAULT_APP_NAME),
              DeploymentID("Adder", SERVE_DEFAULT_APP_NAME),
          ]
          assert_deployments_live(deployments)
          print("All deployments are live.\n")
  
          print("Deploying arithmetic config.")
          deploy_response = subprocess.check_output(
              [
                  "serve",
                  "deploy",
                  arithmetic_file_name,
                  "-a",
                  "http://localhost:52365/",
              ]
          )
          assert success_message_fragment in deploy_response
          print("Deploy request sent successfully.")
  
          wait_for_condition(
              check_http_response,
              json=["ADD", 0],
              expected_text="1",
              timeout=15,
          )
          wait_for_condition(
              check_http_response,
              json=["SUB", 5],
              expected_text="3",
              timeout=15,
          )
          print("Deployments are reachable over HTTP.")
  
          deployments = [
              DeploymentID("Router", SERVE_DEFAULT_APP_NAME),
              DeploymentID("Add", SERVE_DEFAULT_APP_NAME),
              DeploymentID("Subtract", SERVE_DEFAULT_APP_NAME),
          ]
          assert_deployments_live(deployments)
          print("All deployments are live.\n")
  
      ray.shutdown()
  
imports: import os
  import subprocess
  import sys
  import time
  from copy import deepcopy
  from tempfile import NamedTemporaryFile
  from typing import List
  import click
  import pytest
  import requests
  import yaml
  import ray
  from ray import serve
  from ray._private.test_utils import wait_for_condition
  from ray.serve._private.common import DeploymentID
  from ray.serve._private.constants import SERVE_DEFAULT_APP_NAME, SERVE_NAMESPACE
  from ray.serve.scripts import convert_args_to_dict, remove_ansi_escape_sequences
  from ray.tests.conftest import tmp_working_dir
  from ray.util.state import list_actors
label_desc: Use image node_id 5 for calling a global function with example usage: test_deploy_basic(ray_start_stop) without return types