code: def testRecoversTempSplits(self):
      cluster, _ = self.setup(ds_size=1000, num_sources=3)
      # Waits for the split files to be written.
      source_dir = os.path.join(
          self._path,
          "streams",
          "stream_0",
          "splits",
          "source_0",
          "repetition_0",
      )
      while not (
          os.path.exists(source_dir)
          and any(
              not f.endswith(".tmp") for f in os.listdir(source_dir)
          )
      ):
          time.sleep(0.1)
      split_files = [
          f for f in os.listdir(source_dir) if not f.endswith(".tmp")
      ]
      split_file = split_files[0]
      temp_split_file = f"{split_files[0]}__TMP_FILE__uuid.tmp"
      shutil.move(
          os.path.join(source_dir, split_file),
          os.path.join(source_dir, temp_split_file),
      )
  
      self.assertNotIn(split_file, os.listdir(source_dir))
      self.assertIn(temp_split_file, os.listdir(source_dir))
      cluster.restart_dispatcher()
      self.assertIn(split_file, os.listdir(source_dir))
      self.assertNotIn(temp_split_file, os.listdir(source_dir))
  
imports: import collections
  import os
  import pathlib
  import shutil
  import tempfile
  import time
  from absl.testing import parameterized
  from tensorflow.python.data.experimental.kernel_tests.service import test_base
  from tensorflow.python.data.experimental.ops import distributed_save_op
  from tensorflow.python.data.experimental.service import _pywrap_snapshot_utils
  from tensorflow.python.data.kernel_tests import test_base
  from tensorflow.python.data.ops import dataset_ops
  from tensorflow.python.data.ops import test_mode
  from tensorflow.python.framework import combinations
  from tensorflow.python.framework import errors
  from tensorflow.python.platform import test
label_desc: Use image node_id 8 for calling the SnapshotFtTest obj's underlying member method code with example usage: obj.testRecoversTempSplits() without return types