code: def test_github_download_bundle(self, bundle_name, version):
      bundle_files = [
          "model.pt",
          "model.ts",
          "network.json",
          "test_output.pt",
          "test_input.pt",
      ]
      repo = "Project-MONAI/MONAI-extra-test-data/0.8.1"
      hash_val = "a131d39a0af717af32d19e565b434928"
      with skip_if_downloading_fails():
          # download a whole bundle from github releases
          with tempfile.TemporaryDirectory() as tempdir:
              cmd = [
                  "coverage",
                  "run",
                  "-m",
                  "monai.bundle",
                  "download",
                  "--name",
                  bundle_name,
                  "--source",
                  "github",
              ]
              cmd += ["--bundle_dir", tempdir, "--repo", repo]
              if version is not None:
                  cmd += ["--version", version]
              command_line_tests(cmd)
              for file in bundle_files:
                  file_path = os.path.join(tempdir, "test_bundle", file)
                  self.assertTrue(os.path.exists(file_path))
                  if file == "network.json":
                      self.assertTrue(
                          check_hash(filepath=file_path, val=hash_val)
                      )
  
imports: from __future__ import annotations
  import json
  import os
  import tempfile
  import unittest
  from unittest.case import skipUnless
  import numpy
  import torch
  from parameterized import parameterized
  import monai.networks.nets
  from monai.apps import check_hash
  from monai.bundle import ConfigParser, create_workflow, load
  from monai.utils import optional_import
  from tests.utils import SkipIfBeforePyTorchVersion, assert_allclose, command_line_tests, skip_if_downloading_fails, skip_if_no_cuda, skip_if_quick
label_desc: Use image node_id 1 for calling the TestDownload obj's underlying member method code with example usage: obj.test_github_download_bundle(bundle_name, version) without return types