code: def test_shell_help(run: Callable[..., RunResult]):
      output = run("shell", "--help")
  
      if sys.version_info.minor >= 9:
          # This is required because `argparse` behaves differently on
          # Python 3.9 and above. The difference is the changed formatting of help
          # output for CLI arguments with `nargs="*"
          version_dependent = """[-i INTERFACE] [-p PORT] [-t AUTH_TOKEN] [--cors [CORS ...]]
                    [--enable-api] [--response-timeout RESPONSE_TIMEOUT]"""  # noqa: E501
      else:
          version_dependent = """[-i INTERFACE] [-p PORT] [-t AUTH_TOKEN]
                    [--cors [CORS [CORS ...]]] [--enable-api]
                    [--response-timeout RESPONSE_TIMEOUT]"""
  
      help_text = (
          f"""usage: {RASA_EXE} shell [-h] [-v] [-vv] [--quiet]
                    [--logging-config-file LOGGING_CONFIG_FILE]
                    [--conversation-id CONVERSATION_ID] [-m MODEL]
                    [--log-file LOG_FILE] [--use-syslog]
                    [--syslog-address SYSLOG_ADDRESS]
                    [--syslog-port SYSLOG_PORT]
                    [--syslog-protocol SYSLOG_PROTOCOL] [--endpoints ENDPOINTS]
                    """
          + version_dependent
          + """
                    [--remote-storage REMOTE_STORAGE]
                    [--ssl-certificate SSL_CERTIFICATE]
                    [--ssl-keyfile SSL_KEYFILE] [--ssl-ca-file SSL_CA_FILE]
                    [--ssl-password SSL_PASSWORD] [--credentials CREDENTIALS]
                    [--connector CONNECTOR] [--jwt-secret JWT_SECRET]
                    [--jwt-method JWT_METHOD]
                    {nlu} ... [model-as-positional-argument]"""
      )
  
      lines = help_text.split("\n")
      # expected help text lines should appear somewhere in the output
      printed_help = {line.strip() for line in output.outlines}
      for line in lines:
          assert line.strip() in printed_help
  
file_path: rasa/tests/cli/test_rasa_shell.py
imports: import os
  import sys
  from pathlib import Path
  from typing import Callable
  import pytest
  from _pytest.pytester import RunResult
  from rasa.shared.constants import ASSISTANT_ID_KEY
  from tests.cli.conftest import RASA_EXE, create_simple_project_with_missing_assistant_id
label_desc: Use image node_id 1 for calling a global function with example usage: test_shell_help(run) without return types