code: def test_just_script(self, fob):
      lso = local_sources_watcher.LocalSourcesWatcher(SCRIPT_PATH)
      lso.register_file_change_callback(NOOP_CALLBACK)
  
      fob.assert_called_once()
      args, _ = fob.call_args
      self.assertEqual(args[0], SCRIPT_PATH)
      method_type = type(self.setUp)
      self.assertEqual(type(args[1]), method_type)
  
      fob.reset_mock()
      lso.update_watched_modules()
      lso.update_watched_modules()
      lso.update_watched_modules()
      lso.update_watched_modules()
  
      self.assertEqual(fob.call_count, 1)
  
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 2 for calling the LocalSourcesWatcherTest obj's underlying member method code with example usage: obj.test_just_script(fob) without return types