code: def test_silent_question():
      # SilentConsoleLog must not be asked questions.
      # If it is asked, RuntimeError would be thrown with details to help
      # troubleshooting WTF is happening
      from ..dialog import SilentConsoleLog
  
      ui = SilentConsoleLog()
      with assert_raises(RuntimeError) as cme:
          ui.question("could you help me", title="Pretty please")
      assert_in(
          "question: could you help me. Title: Pretty please.",
          str(cme.value),
      )
  
      with assert_raises(RuntimeError) as cme:
          ui.question(
              "could you help me",
              title="Pretty please",
              choices=["secret1"],
              hidden=True,
          )
      assert_in(
          "question: could you help me. Title: Pretty please.",
          str(cme.value),
      )
      assert_not_in("secret1", str(cme.value))
      assert_in("not shown", str(cme.value))
  
      # additional kwargs, no title, choices
      with assert_raises(RuntimeError) as cme:
          ui.question("q", choices=["secret1"])
      assert_in("secret1", str(cme.value))
  
file_path: datalad/datalad/ui/tests/test_dialog.py
imports: import builtins
  from io import StringIO
  from unittest.mock import call, patch
  import pytest
  from datalad.ui.progressbars import progressbars
  from datalad.utils import swallow_logs
  from ...tests.utils_pytest import assert_in, assert_not_in, assert_raises, assert_re_in, eq_, ok_endswith, ok_startswith
  from ..dialog import ConsoleLog, DialogUI, IPythonUI
label_desc: Use image node_id 8 for calling a global function with example usage: test_silent_question() without return types