code: def test_distribute_folder(self):
      self.add_master()
      self.add_worker(n_cpu=1)
      if os.path.exists("distribute_test_dir_3"):
          shutil.rmtree("distribute_test_dir_3")
      os.mkdir("distribute_test_dir_3")
      os.mkdir("distribute_test_dir_3/subfolder_test")
      os.mkdir("distribute_test_dir_3/empty_folder")
      f = open("distribute_test_dir_3/subfolder_test/test1.txt", "wb")
      f.close()
      f = open("distribute_test_dir_3/subfolder_test/data1.npy", "wb")
      f.close()
      logger.info("running:test_distributed_folder")
      parl.connect(
          "localhost:{}".format(self.port),
          distributed_files=[
              "distribute_test_dir_3",
          ],
      )
      actor = Actor()
      self.assertTrue(
          actor.file_exists(
              "distribute_test_dir_3/subfolder_test/test1.txt"
          )
      )
      self.assertTrue(
          actor.file_exists(
              "distribute_test_dir_3/subfolder_test/data1.npy"
          )
      )
      self.assertTrue(
          actor.file_exists("distribute_test_dir_3/empty_folder")
      )
      shutil.rmtree("distribute_test_dir_3")
  
file_path: PARL/parl/remote/tests/support_RegExp_test.py
imports: import unittest
  import os
  import shutil
  import parl
  import time
  import threading
  from parl.remote import exceptions
  from parl.utils import logger
  from parl.utils.test_utils import XparlTestCase
label_desc: Use image node_id 3 for calling the TestCluster obj's underlying member method code with example usage: obj.test_distribute_folder() without return types