code: def _test_one_class(self, c):
      self._failed = "No error message set or cleared."
      obj = c()
      e1 = threading.Event()
      e2 = threading.Event()
  
      def f1():
          obj.x = "foo"
          obj.y = "bar"
          del obj.y
          e1.set()
          e2.wait()
  
      def f2():
          try:
              foo = obj.x
          except AttributeError:
              # This is expected -- we haven't set obj.x in this thread yet!
              self._failed = ""  # passed
          else:
              self._failed = (
                  "Incorrectly got value %r from class %r\n" % (foo, c)
              )
              sys.stderr.write(self._failed)
  
      t1 = threading.Thread(target=f1)
      t1.start()
      e1.wait()
      t2 = threading.Thread(target=f2)
      t2.start()
      t2.join()
      # The test is done; just let t1 know it can exit, and wait for it.
      e2.set()
      t1.join()
  
      self.assertFalse(self._failed, self._failed)
  
imports: import sys
  import unittest
  from doctest import DocTestSuite
  from test import support
  from test.support import threading_helper
  from test.support.import_helper import import_module
  import weakref
  import _thread
  import threading
  import _threading_local
label_desc: Use image node_id 6 for calling the BaseLocalTest obj's underlying member method code with example usage: obj._test_one_class(c) without return types