code: def gcs_assetsmanager(request, working_dir):
      # kill previous fake gcs container (if any)
      subprocess.call(
          ["docker", "rm", "-f", "modelkit-storage-gcs-tests"],
          stderr=subprocess.DEVNULL,
      )
      # start minio as docker container
      minio_proc = subprocess.Popen(
          [
              "docker",
              "run",
              "-p",
              "4443:4443",
              "--name",
              "modelkit-storage-gcs-tests",
              "fsouza/fake-gcs-server",
          ]
      )
  
      def finalize():
          subprocess.call(
              ["docker", "stop", "modelkit-storage-gcs-tests"]
          )
          minio_proc.terminate()
          minio_proc.wait()
  
      request.addfinalizer(finalize)
  
      storage_provider = StorageProvider(
          prefix="test-prefix",
          provider="gcs",
          bucket="test-bucket",
          client=_get_mock_gcs_client(),
      )
      storage_provider.driver.client.create_bucket("test-bucket")
      mng = AssetsManager(
          assets_dir=working_dir, storage_provider=storage_provider
      )
      yield mng
  
file_path: modelkit/tests/assets/conftest.py
imports: import os
  import subprocess
  import uuid
  import pytest
  import requests
  import urllib3
  from google.api_core.client_options import ClientOptions
  from google.auth.credentials import AnonymousCredentials
  from google.cloud import storage
  from tenacity import retry, retry_if_exception, stop_after_attempt, wait_random_exponential
  from modelkit.assets.manager import AssetsManager
  from modelkit.assets.remote import StorageProvider
label_desc: Use image node_id 4 for calling a global function with example usage: gcs_assetsmanager(request, working_dir) without return types