code: def test_proxy_gunicorn_startup_direct_config():
      """
      gunicorn startup requires the config to be passed in via environment variables
  
      We support saving either the config or the dict as an environment variable.
  
      Test both approaches
      """
      try:
          filepath = os.path.dirname(os.path.abspath(__file__))
          # test with worker_config = config yaml
          config_fp = (
              f"{filepath}/test_configs/test_config_no_auth.yaml"
          )
          os.environ["WORKER_CONFIG"] = config_fp
          asyncio.run(startup_event())
          asyncio.run(shutdown_event())
      except Exception as e:
          if "Already connected to the query engine" in str(e):
              pass
          else:
              pytest.fail(f"An exception occurred - {str(e)}")
  
file_path: litellm/litellm/tests/test_proxy_startup.py
imports: import sys, os, json
  import traceback
  from dotenv import load_dotenv
  import os, io
  import pytest, logging, asyncio
  import litellm
  from litellm.proxy.proxy_server import router, save_worker_config, initialize, startup_event, llm_model_list, shutdown_event
label_desc: Use image node_id 1 for calling a global function with example usage: test_proxy_gunicorn_startup_direct_config() without return types