code: def test_info_one(s3root, prefixes, expected):
      with S3() as s3:
          for url, item in expected.items():
              if item[None].size is None:
                  # ensure that the default return_missing=False works
                  with pytest.raises(MetaflowS3NotFound):
                      s3obj = s3.info(url)
                  # test return_missing=True
                  s3obj = s3.info(url, return_missing=True)
                  assert_results(
                      [s3obj], {url: expected[url]}, info_only=True
                  )
              else:
                  s3obj = s3.info(url)
                  assert_results(
                      [s3obj], {url: expected[url]}, info_only=True
                  )
  
imports: import os
  from re import I
  import shutil
  from hashlib import sha1
  from tempfile import mkdtemp
  from itertools import groupby, starmap
  import random
  from uuid import uuid4
  from metaflow.plugins.datatools import s3
  import pytest
  from metaflow import current, namespace, Run
  from metaflow.plugins.datatools.s3 import S3, MetaflowS3AccessDenied, MetaflowS3NotFound, MetaflowS3URLException, MetaflowS3InvalidObject, S3PutObject, S3GetObject
  from metaflow.util import to_bytes, unicode_type
  from .None import s3_data
  from ..None import FakeFlow, DO_TEST_RUN
label_desc: Use image node_id 13 for calling a global function with example usage: test_info_one(s3root, prefixes, expected) without return types