code: def test_merge_empty_env_vars(self):
      env_vars = {"test": "val", "trial": "val2"}
  
      non_empty = {"env_vars": {"test": "val", "trial": "val2"}}
      empty = {}
  
      assert (
          env_vars
          == override_runtime_envs_except_env_vars(non_empty, empty)[
              "env_vars"
          ]
      )
      assert (
          env_vars
          == override_runtime_envs_except_env_vars(empty, non_empty)[
              "env_vars"
          ]
      )
      assert (
          {}
          == override_runtime_envs_except_env_vars(empty, empty)[
              "env_vars"
          ]
      )
  
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 7 for calling the TestOverrideRuntimeEnvsExceptEnvVars obj's underlying member method code with example usage: obj.test_merge_empty_env_vars() without return types