code: def test_build_anyscale_champagne_image() -> None:
      cmds = []
  
      def _mock_check_call(
          cmd: List[str],
          *args,
          **kwargs,
      ) -> None:
          cmds.append(cmd)
  
      with patch.dict(
          "os.environ",
          {"BUILDKITE_COMMIT": "abc123", "BUILDKITE_BRANCH": "master"},
      ), patch(
          "ray_release.byod.build._download_dataplane_build_file",
          return_value=None,
      ), patch(
          "subprocess.check_call",
          side_effect=_mock_check_call,
      ), patch(
          "subprocess.check_output",
          return_value=b"abc123",
      ), open(
          DATAPLANE_FILENAME, "wb"
      ) as _:
          build_champagne_image("2.5.1", "py37", "cpu")
          assert "docker build --build-arg BASE_IMAGE=rayproject/ray:2.5.1-py37 -t "
          "029272617770.dkr.ecr.us-west-2.amazonaws.com/"
          "anyscale/ray:champagne-2.5.1 -" == " ".join(cmds[0])
  
file_path: ray/release/ray_release/tests/test_byod_build.py
imports: import sys
  import pytest
  from unittest.mock import patch
  from typing import List
  from ray_release.bazel import bazel_runfile
  from ray_release.configs.global_config import init_global_config, get_global_config
  from ray_release.test import Test
  from ray_release.byod.build import build_anyscale_custom_byod_image, build_anyscale_base_byod_images, build_champagne_image, DATAPLANE_FILENAME, _get_ray_commit
label_desc: Use image node_id 2 for calling a global function with example usage: test_build_anyscale_champagne_image() without return types