code: def test_syncer_not_running_sync(temp_data_dirs, tmp_path):
      """Check that new sync is issued if old sync completed"""
      tmp_source, tmp_target = temp_data_dirs
  
      class FakeSyncProcess:
          @property
          def is_running(self):
              return False
  
          def wait(self):
              return True
  
      syncer = _FilesystemSyncer(
          storage_filesystem=_create_mock_custom_fs(tmp_path),
          sync_period=60,
      )
      syncer._sync_process = FakeSyncProcess()
      assert syncer.sync_up_if_needed(
          local_dir=tmp_source,
          remote_dir="/test/test_syncer_not_running_sync",
      )
  
imports: import logging
  import os
  import time
  from typing import List, Optional
  from freezegun import freeze_time
  import pytest
  import ray
  import ray.cloudpickle
  from ray.train._internal.storage import _upload_to_fs_path, _download_from_fs_path, get_fs_and_path, _FilesystemSyncer
  from ray.train._internal.syncer import _BackgroundProcess
  from ray.train.tests.test_new_persistence import _create_mock_custom_fs
label_desc: Use image node_id 12 for calling a global function with example usage: test_syncer_not_running_sync(temp_data_dirs, tmp_path) and returns: False, True