class_docstr: Basic tests on the build_data.py download_multiprocess.
class_docstr_tok: ["Basic","tests","on","the","build_data.py","download_multiprocess","."]
code: def test_download_multiprocess_chunks(self):
      # Tests that the three finish downloading but may finish in any order
      urls = [
          "https://parl.ai/downloads/mnist/mnist.tar.gz",
          "https://parl.ai/downloads/mnist/mnist.tar.gz.BAD",
          "https://parl.ai/downloads/mnist/mnist.tar.gz.BAD",
      ]
  
      download_results = build_data.download_multiprocess(
          urls,
          self.datapath,
          dest_filenames=self.dest_filenames,
          chunk_size=1,
      )
  
      output_filenames, output_statuses, output_errors = zip(
          *download_results
      )
  
      self.assertIn("mnist0.tar.gz", output_filenames)
      self.assertIn("mnist1.tar.gz", output_filenames)
      self.assertIn("mnist2.tar.gz", output_filenames)
      self.assertIn(200, output_statuses, "unexpected error code")
      self.assertIn(403, output_statuses, "unexpected error code")
  
imports: import os
  import pytest
  from parlai.core import build_data
  import unittest
  import unittest.mock
  import requests
  import parlai.utils.testing
  import multiprocessing
  from parlai.utils.io import PathManager
  from parlai.core.params import ParlaiParser
label_desc: Use image node_id 3 for calling the TestBuildData obj's underlying member method code with example usage: obj.test_download_multiprocess_chunks() without return types