docstr: Catch emitter loops
docstr_tok: ["Catch","emitter","loops"]
code: def test_emitter_loop(self):
      """Catch emitter loops"""
      em1 = EventEmitter(type="test_event1")
      em2 = EventEmitter(type="test_event2")
      em1.ignore_callback_errors = False
      em2.ignore_callback_errors = False
  
      # cross-connect emitters; when we emit, an exception should be raised
      # indicating an event loop.
      em1.connect(em2)
      em2.connect(em1)
      try:
          em1()
      except RuntimeError as err:
          if str(err) != "EventEmitter loop detected!":
              raise err
  
imports: import unittest
  import copy
  import functools
  from vispy.util.event import Event, EventEmitter
  from vispy.testing import run_tests_if_main, assert_raises, assert_equal
label_desc: Use image node_id 18 for calling the TestEmitters obj's underlying member method code with example usage: obj.test_emitter_loop() without return types