code: def test_reject_cyclic_aliases(self):
      add_alias = self.dispatcher.register_calendar_alias
  
      add_alias("A", "B")
      add_alias("B", "C")
  
      with self.assertRaises(CyclicCalendarAlias) as e:
          add_alias("C", "A")
  
      expected = "Cycle in calendar aliases: ['C' -> 'A' -> 'B' -> 'C']"
      self.assertEqual(str(e.exception), expected)
  
file_path: catalyst/tests/calendars/test_calendar_dispatcher.py
imports: from catalyst.errors import CalendarNameCollision, CyclicCalendarAlias, InvalidCalendarName
  from catalyst.testing import CatalystTestCase
  from catalyst.utils.calendars.calendar_utils import TradingCalendarDispatcher
  from catalyst.utils.calendars.exchange_calendar_ice import ICEExchangeCalendar
label_desc: Use image node_id 8 for calling the CalendarAliasTestCase obj's underlying member method code with example usage: obj.test_reject_cyclic_aliases() without return types