code: def test_merge_dict():
      dict1 = {"pending": 1, "running": 1, "finished": 1}
      dict2 = {"pending": 4, "finished": 1}
      merge = merge_dict(dict1, dict2)
      assert merge["pending"] == 5
      assert merge["running"] == 1
      assert merge["finished"] == 2
      dict1 = None
      merge = merge_dict(dict1, dict2)
      assert merge["pending"] == 4
      assert merge["finished"] == 1
      try:
          assert merge["running"] == 1
          assert False
      except KeyError:
          assert True
      dict2 = None
      merge = merge_dict(dict1, dict2)
      assert merge is None
  
imports: import asyncio
  import json
  import os
  import time
  from unittest.mock import patch
  import numpy
  import pytest
  from fastapi.encoders import jsonable_encoder
  import ray
  from ray import serve
  from ray._private.resource_spec import HEAD_NODE_RESOURCE_NAME
  from ray._private.test_utils import wait_for_condition
  from ray.serve._private.test_utils import MockTimer
  from ray.serve._private.utils import MetricsPusher, calculate_remaining_timeout, get_all_live_placement_group_names, get_current_actor_id, get_head_node_id, is_running_in_asyncio_loop, merge_dict, msgpack_deserialize, msgpack_serialize, override_runtime_envs_except_env_vars, serve_encoders, snake_to_camel_case
  from ray.serve.tests.common.remote_uris import TEST_DAG_PINNED_URI, TEST_DEPLOY_GROUP_PINNED_URI
label_desc: Use image node_id 2 for calling a global function with example usage: test_merge_dict() without return types