code: def test_passes_filepath_to_callback(self, fob):
      saved_filepath = None
  
      def callback(filepath):
          nonlocal saved_filepath
  
          saved_filepath = filepath
  
      lso = local_sources_watcher.LocalSourcesWatcher(SCRIPT_PATH)
      lso.register_file_change_callback(callback)
  
      # Simulate a change to the report script
      lso.on_file_changed(SCRIPT_PATH)
  
      self.assertEqual(saved_filepath, SCRIPT_PATH)
  
imports: import os
  import sys
  import unittest
  from unittest.mock import MagicMock, patch
  import tests.streamlit.watcher.test_data.dummy_module1
  import tests.streamlit.watcher.test_data.dummy_module2
  import tests.streamlit.watcher.test_data.misbehaved_module
  import tests.streamlit.watcher.test_data.nested_module_child
  import tests.streamlit.watcher.test_data.nested_module_parent
  from streamlit import config
  from streamlit.watcher import local_sources_watcher
  from streamlit.watcher.path_watcher import NoOpPathWatcher, watchdog_available
label_desc: Use image node_id 16 for calling the LocalSourcesWatcherTest obj's underlying member method code with example usage: obj.test_passes_filepath_to_callback(fob) without return types