code: def test_uri_to_http_and_back():
      assert uri_to_http_components("gcs://hello.zip") == (
          "gcs",
          "hello.zip",
      )
      assert uri_to_http_components("gcs://hello.whl") == (
          "gcs",
          "hello.whl",
      )
  
      with pytest.raises(
          ValueError, match="'blah' is not a valid Protocol"
      ):
          uri_to_http_components("blah://halb.zip")
  
      with pytest.raises(
          ValueError, match="does not end in .zip or .whl"
      ):
          assert uri_to_http_components("gcs://hello.not_zip")
  
      with pytest.raises(
          ValueError, match="does not end in .zip or .whl"
      ):
          assert uri_to_http_components("gcs://hello")
  
      assert (
          http_uri_components_to_uri("gcs", "hello.zip")
          == "gcs://hello.zip"
      )
      assert (
          http_uri_components_to_uri("blah", "halb.zip")
          == "blah://halb.zip"
      )
      assert (
          http_uri_components_to_uri("blah", "halb.whl")
          == "blah://halb.whl"
      )
  
      for original_uri in ["gcs://hello.zip", "gcs://fasdf.whl"]:
          new_uri = http_uri_components_to_uri(
              *uri_to_http_components(original_uri)
          )
          assert new_uri == original_uri
  
file_path: ray/dashboard/modules/job/tests/test_common.py
imports: import pytest
  import json
  from ray.dashboard.modules.job.common import JobInfo, JobStatus, http_uri_components_to_uri, uri_to_http_components, validate_request_type, JobSubmitRequest
  from ray.core.generated.gcs_pb2 import JobsAPIInfo
  from google.protobuf.json_format import Parse
label_desc: Use image node_id 1 for calling a global function with example usage: test_uri_to_http_and_back() without return types