code: def test_downloader_download(urlpath=None, url=None, path=None):
      path = Path(path)
      downloader = SHubDownloader()
      downloader.api_url = url
      create_tree(
          urlpath,
          tree={
              "data": "foo",
              "org": {
                  "repo": '{{"name":"org/repo","image":"{}"}}'.format(
                      url + "data"
                  )
              },
          },
      )
  
      target = str(path / "target")
      downloader.download("shub://org/repo", target)
      ok_file_has_content(target, "foo")
  
      other_target = str(path / "other-target")
      downloader.download("shub://org/repo", other_target)
  
imports: from datalad.downloaders.shub import SHubDownloader
  from datalad.support.exceptions import DownloadError
  from datalad.tests.utils_pytest import assert_raises, ok_file_has_content, serve_path_via_http, with_tempfile
  from datalad.utils import Path, create_tree
label_desc: Use image node_id 3 for calling a global function with example usage: test_downloader_download(urlpath, url, path) without return types