code: def test_storage_path_inputs():
      """Tests storage path input edge cases."""
      exp_name = "test_storage_path"
  
      # Relative paths don't work
      with pytest.raises(pyarrow.lib.ArrowInvalid) as excinfo:
          StorageContext(
              storage_path="./results", experiment_dir_name=exp_name
          )
      assert "URI has empty scheme" in str(excinfo.value)
  
      with pytest.raises(pyarrow.lib.ArrowInvalid) as excinfo:
          StorageContext(
              storage_path="results", experiment_dir_name=exp_name
          )
      assert "URI has empty scheme" in str(excinfo.value)
  
      # Tilde paths sometimes raise... They do not work on the CI machines.
      try:
          StorageContext(
              storage_path="~/ray_results", experiment_dir_name=exp_name
          )
      except pyarrow.lib.ArrowInvalid as e:
          print(e)
          pass
  
      # Paths with lots of extra . .. and /
      path = os.path.expanduser("~/ray_results")
      path = os.path.join(path, ".", "..", "ray_results", ".")
      path = path.replace(os.path.sep, os.path.sep * 2)
      storage = StorageContext(
          storage_path=path, experiment_dir_name=exp_name
      )
  
      storage.storage_filesystem.create_dir(
          os.path.join(storage.storage_fs_path, "test_dir")
      )
      assert Path("~/ray_results/test_dir").expanduser().exists()
  
      # Path objects work
      StorageContext(
          storage_path=Path(path), experiment_dir_name=exp_name
      )
  
file_path: ray/python/ray/train/tests/test_storage.py
imports: import os
  from pathlib import Path
  import pyarrow.fs
  import pytest
  import ray.cloudpickle
  from ray.train import Checkpoint, SyncConfig
  from ray.train._internal.storage import _VALIDATE_STORAGE_MARKER_FILENAME, StorageContext, _list_at_fs_path
  from ray.train.tests.test_new_persistence import _resolve_storage_type
label_desc: Use image node_id 4 for calling a global function with example usage: test_storage_path_inputs() without return types