code: def test_interrupt_cancelled_task(self):
      # interrupting cancelled main task doesn't raise KeyboardInterrupt
      assert threading.current_thread() is threading.main_thread()
  
      async def subtask(task):
          await asyncio.sleep(0)
          task.cancel()
          interrupt_self()
  
      async def coro():
          asyncio.create_task(subtask(asyncio.current_task()))
          await asyncio.sleep(10)
  
      with asyncio.Runner() as runner:
          with self.assertRaises(asyncio.CancelledError):
              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 14 for calling the RunnerTests obj's underlying member method code with example usage: obj.test_interrupt_cancelled_task() without return types