code: def test_case_soft_keyword(self):
      # empty case
      self._assert_highlighting("case", {"KEYWORD": [("1.0", "1.4")]})
  
      # case followed by partial identifier
      self._assert_highlighting(
          "case fo", {"KEYWORD": [("1.0", "1.4")]}
      )
  
      # case followed by identifier and colon
      self._assert_highlighting(
          "case foo:", {"KEYWORD": [("1.0", "1.4")]}
      )
  
      # case followed by keyword
      self._assert_highlighting(
          "case and", {"KEYWORD": [("1.5", "1.8")]}
      )
  
      # case followed by builtin with keyword prefix
      self._assert_highlighting(
          "case int:",
          {"KEYWORD": [("1.0", "1.4")], "BUILTIN": [("1.5", "1.8")]},
      )
  
      # case followed by non-text operator
      self._assert_highlighting("case^", {})
      self._assert_highlighting("case @", {})
  
      # case followed by colon
      self._assert_highlighting("case :", {})
  
      # case followed by comma
      self._assert_highlighting("case\t,", {})
  
      # case followed by a lone underscore
      self._assert_highlighting(
          "case _:", {"KEYWORD": [("1.0", "1.4"), ("1.5", "1.6")]}
      )
  
imports: from idlelib import colorizer
  from test.support import requires
  import unittest
  from unittest import mock
  from idlelib.idle_test.tkinter_testing_utils import run_in_tk_mainloop
  from functools import partial
  import textwrap
  from tkinter import Tk, Text
  from idlelib import config
  from idlelib.percolator import Percolator
label_desc: Use image node_id 17 for calling the ColorDelegatorTest obj's underlying member method code with example usage: obj.test_case_soft_keyword() without return types