code: def test_queue_api(queue_type, monkeypatch):
      """Test the Queue API.
  
      This test run all the Queue implementation but we monkeypatch the Redis Queues to avoid external interaction
  
      """
      import redis
  
      blpop_out = (b"entry-id", pickle.dumps("test_entry"))
  
      monkeypatch.setattr(
          redis.Redis, "blpop", lambda *args, **kwargs: blpop_out
      )
      monkeypatch.setattr(
          redis.Redis, "rpush", lambda *args, **kwargs: None
      )
      monkeypatch.setattr(
          redis.Redis, "set", lambda *args, **kwargs: None
      )
      monkeypatch.setattr(
          redis.Redis, "get", lambda *args, **kwargs: None
      )
  
      test_queue = queue_type.get_readiness_queue()
      assert test_queue.name == READINESS_QUEUE_CONSTANT
      assert isinstance(test_queue, BaseQueue)
      test_queue.put("test_entry")
      assert test_queue.get() == "test_entry"
  
imports: import base64
  import multiprocessing
  import pickle
  import queue
  import time
  from unittest import mock
  import pytest
  import requests_mock
  from lightning.app import LightningFlow
  from lightning.app.core import queues
  from lightning.app.core.constants import HTTP_QUEUE_URL, STATE_UPDATE_TIMEOUT
  from lightning.app.core.queues import READINESS_QUEUE_CONSTANT, BaseQueue, HTTPQueue, QueuingSystem, RateLimitedQueue, RedisQueue
  from lightning.app.utilities.imports import _is_redis_available
  from lightning.app.utilities.redis import check_if_redis_running
label_desc: Use image node_id 1 for calling a global function with example usage: test_queue_api(queue_type, monkeypatch) without return types