code: def test_watch_with_broken_symlinks(self, docs_dir):
      Path(docs_dir, "subdir").mkdir()
  
      try:
          if sys.platform != "win32":
              Path(docs_dir, "subdir", "circular").symlink_to(
                  Path(docs_dir)
              )
  
          Path(docs_dir, "broken_1").symlink_to(Path(docs_dir, "oh no"))
          Path(docs_dir, "broken_2").symlink_to(
              Path(docs_dir, "oh no"), target_is_directory=True
          )
          Path(docs_dir, "broken_3").symlink_to(
              Path(docs_dir, "broken_2")
          )
      except NotImplementedError:  # PyPy on Windows
          self.skipTest("Creating symlinks not supported")
  
      started_building = threading.Event()
      with testing_server(docs_dir, started_building.set) as server:
          server.watch(docs_dir)
          time.sleep(0.01)
  
          Path(docs_dir, "subdir", "test").write_text("test")
          self.assertTrue(started_building.wait(timeout=10))
  
imports: import contextlib
  import email
  import io
  import sys
  import threading
  import time
  import unittest
  from pathlib import Path
  from unittest import mock
  from mkdocs.livereload import LiveReloadServer
  from mkdocs.tests.base import change_dir, tempdir
label_desc: Use image node_id 28 for calling the BuildTests obj's underlying member method code with example usage: obj.test_watch_with_broken_symlinks(docs_dir) without return types