code: def test_flow_with_multiprotocol_gateway(
      logger, docker_images, tmpdir, stream
  ):
      http_port = random_port()
      grpc_port = random_port()
      flow = Flow().config_gateway(
          uses=f"docker://{docker_images[0]}",
          port=[http_port, grpc_port],
          protocol=["http", "grpc"],
      )
  
      dump_path = os.path.join(
          str(tmpdir), "docker-compose-flow-multiprotocol-gateway.yml"
      )
      flow.to_docker_compose_yaml(dump_path)
  
      with DockerComposeServices(dump_path):
          import requests
  
          grpc_client = Client(protocol="grpc", port=grpc_port)
          grpc_client.post("/", inputs=Document(), stream=stream)
          resp = requests.get(f"http://localhost:{http_port}").json()
          assert resp["protocol"] == "http"
          assert BaseServer.is_ready(f"localhost:{grpc_port}")
  
file_path: jina/tests/docker_compose/test_flow_docker_compose.py
imports: import os
  import pytest
  import requests
  from jina import Client, Document, Flow
  from jina.helper import random_port
  from jina.serve.runtimes.servers import BaseServer
  from tests.docker_compose.conftest import DockerComposeServices
  from tests.helper import _validate_custom_gateway_process, _validate_dummy_custom_gateway_response
label_desc: Use image node_id 4 for calling a global function with example usage: test_flow_with_multiprotocol_gateway(logger, docker_images, tmpdir, stream) without return types