code: def test_cached_download(self):
      with mock.patch("six.moves.urllib.request.urlretrieve") as f:
  
          def download(url, path):
              with open(path, "w") as f:
                  f.write("test")
  
          f.side_effect = download
  
          cache_path = dataset.cached_download("https://example.com")
  
      self.assertEqual(f.call_count, 1)
      args, kwargs = f.call_args
      self.assertEqual(kwargs, {})
      self.assertEqual(len(args), 2)
      # The second argument is a temporary path, and it is removed
      self.assertEqual(args[0], "https://example.com")
  
      self.assertTrue(os.path.exists(cache_path))
      with open(cache_path) as f:
          stored_data = f.read()
      self.assertEqual(stored_data, "test")
  
imports: import os
  import shutil
  import tempfile
  import unittest
  import mock
  from chainer import dataset
  from chainer import testing
label_desc: Use image node_id 5 for calling the TestCachedDownload obj's underlying member method code with example usage: obj.test_cached_download() without return types