code: def test_get_multiple_message(self, mock):
      d = self.data
      data2 = ((d[0], d[1]), (d[1], d[2]), (d[2], d[0]))
      subtests = 0
      for (code1, exc1, msg1), (code2, exc2, msg2) in data2:
          with self.subTest(codes=(code1, code2)):
              try:
                  eval(compile(code1, "", "eval"))
              except exc1:
                  try:
                      eval(compile(code2, "", "eval"))
                  except exc2:
                      with captured_stderr() as output:
                          run.print_exception()
                      actual = output.getvalue()
                      self.assertIn(msg1, actual)
                      self.assertIn(msg2, actual)
                      subtests += 1
      self.assertEqual(subtests, len(data2))
  
imports: from idlelib import run
  import io
  import sys
  from test.support import captured_output, captured_stderr
  import unittest
  from unittest import mock
  import idlelib
  from idlelib.idle_test.mock_idle import Func
label_desc: Use image node_id 3 for calling the ExceptionTest obj's underlying member method code with example usage: obj.test_get_multiple_message(mock) without return types