code: def test_deployment_properties():
      class DClass:
          pass
  
      D = serve.deployment(
          name="name",
          version="version",
          num_replicas=2,
          user_config="hi",
          max_concurrent_queries=100,
          route_prefix="/hello",
          ray_actor_options={"num_cpus": 2},
      )(DClass)
  
      assert D.name == "name"
      assert D.version == "version"
      assert D.num_replicas == 2
      assert D.user_config == "hi"
      assert D.max_concurrent_queries == 100
      assert D.route_prefix == "/hello"
      assert D.ray_actor_options == {"num_cpus": 2}
  
      D = serve.deployment(
          version=None,
          route_prefix=None,
      )(DClass)
      assert D.version is None
      assert D.route_prefix is None
  
imports: import os
  import sys
  import time
  from collections import defaultdict
  from typing import Callable
  import pytest
  import requests
  import ray
  from ray import serve
  from ray._private.pydantic_compat import ValidationError
  from ray._private.test_utils import SignalActor
  from ray.serve._private.utils import get_random_string
  from ray.serve.exceptions import RayServeException
label_desc: Use image node_id 15 for calling a global function with example usage: test_deployment_properties() without return types