code: def test_interrupt_call_soon(self):
      # The only case when task is not suspended by waiting a future
      # or another task
      assert threading.current_thread() is threading.main_thread()
  
      async def coro():
          with self.assertRaises(asyncio.CancelledError):
              while True:
                  await asyncio.sleep(0)
          raise asyncio.CancelledError()
  
      with asyncio.Runner() as runner:
          runner.get_loop().call_later(0.1, interrupt_self)
          with self.assertRaises(KeyboardInterrupt):
              runner.run(coro())
  
imports: import _thread
  import asyncio
  import contextvars
  import re
  import signal
  import sys
  import threading
  import unittest
  from test.test_asyncio import utils
  from unittest import mock
  from unittest.mock import patch
label_desc: Use image node_id 12 for calling the RunnerTests obj's underlying member method code with example usage: obj.test_interrupt_call_soon() without return types