class documentation

class CliRunner: (source)

View In Hierarchy

The CLI runner provides functionality to invoke a Click command line script for unittesting purposes in a isolated environment. This only works in single-threaded systems without any concurrency as it changes the global interpreter state. :param charset: the character set for the input and output data. :param env: a dictionary with environment variables for overriding. :param echo_stdin: if this is set to `True`, then reading from stdin writes to stdout. This is useful for showing examples in some circumstances. Note that regular prompts will automatically echo the input. :param mix_stderr: if this is set to `False`, then stdout and stderr are preserved as independent streams. This is useful for Unix-philosophy apps that have predictable stdout and noisy stderr, such that each may be measured independently

Method __init__ Undocumented
Method get_default_prog_name Given a command object it will return the default program name for it. The default is the `name` attribute or ``"root"`` if not set.
Method invoke Invokes a command in an isolated environment. The arguments are forwarded directly to the command line script, the `extra` keyword arguments are passed to the :meth:`~clickpkg.Command.main` function of the command.
Method isolated_filesystem A context manager that creates a temporary directory and changes the current working directory to it. This isolates tests that affect the contents of the CWD to prevent them from interfering with each other.
Method isolation A context manager that sets up the isolation for invoking of a command line tool. This sets up stdin with the given input data and `os.environ` with the overrides from the given dictionary. This also rebinds some internals in Click to be mocked (like the prompt functionality).
Method make_env Returns the environment overrides for invoking a script.
Instance Variable charset Undocumented
Instance Variable echo_stdin Undocumented
Instance Variable env Undocumented
Instance Variable mix_stderr Undocumented
def __init__(self, charset='utf-8', env=None, echo_stdin=False, mix_stderr=True): (source)

Undocumented

Parameters
charset:strUndocumented
env:t.Optional[t.Mapping[str, t.Optional[str]]]Undocumented
echo_stdin:boolUndocumented
mix_stderr:boolUndocumented
def get_default_prog_name(self, cli): (source)

Given a command object it will return the default program name for it. The default is the `name` attribute or ``"root"`` if not set.

Parameters
cli:BaseCommandUndocumented
Returns
strUndocumented
def invoke(self, cli, args=None, input=None, env=None, catch_exceptions=True, color=False, **extra): (source)

Invokes a command in an isolated environment. The arguments are forwarded directly to the command line script, the `extra` keyword arguments are passed to the :meth:`~clickpkg.Command.main` function of the command. This returns a :class:`Result` object. :param cli: the command to invoke :param args: the arguments to invoke. It may be given as an iterable or a string. When given as string it will be interpreted as a Unix shell command. More details at :func:`shlex.split`. :param input: the input data for `sys.stdin`. :param env: the environment overrides. :param catch_exceptions: Whether to catch any other exceptions than ``SystemExit``. :param extra: the keyword arguments to pass to :meth:`main`. :param color: whether the output should contain color codes. The application can still override this explicitly. .. versionchanged:: 8.0 The result object has the ``return_value`` attribute with the value returned from the invoked command. .. versionchanged:: 4.0 Added the ``color`` parameter. .. versionchanged:: 3.0 Added the ``catch_exceptions`` parameter. .. versionchanged:: 3.0 The result object has the ``exc_info`` attribute with the traceback if available.

Parameters
cli:BaseCommandUndocumented
args:t.Optional[t.Union[str, t.Sequence[str]]]Undocumented
input:t.Optional[t.Union[str, bytes, t.IO]]Undocumented
env:t.Optional[t.Mapping[str, t.Optional[str]]]Undocumented
catch_exceptions:boolUndocumented
color:boolUndocumented
**extra:t.AnyUndocumented
Returns
ResultUndocumented
@contextlib.contextmanager
def isolated_filesystem(self, temp_dir=None): (source)

A context manager that creates a temporary directory and changes the current working directory to it. This isolates tests that affect the contents of the CWD to prevent them from interfering with each other. :param temp_dir: Create the temporary directory under this directory. If given, the created directory is not removed when exiting. .. versionchanged:: 8.0 Added the ``temp_dir`` parameter.

Parameters
temp_dir:t.Optional[t.Union[str, os.PathLike]]Undocumented
Returns
t.Iterator[str]Undocumented
@contextlib.contextmanager
def isolation(self, input=None, env=None, color=False): (source)

A context manager that sets up the isolation for invoking of a command line tool. This sets up stdin with the given input data and `os.environ` with the overrides from the given dictionary. This also rebinds some internals in Click to be mocked (like the prompt functionality). This is automatically done in the :meth:`invoke` method. :param input: the input stream to put into sys.stdin. :param env: the environment overrides as dictionary. :param color: whether the output should contain color codes. The application can still override this explicitly. .. versionchanged:: 8.0 ``stderr`` is opened with ``errors="backslashreplace"`` instead of the default ``"strict"``. .. versionchanged:: 4.0 Added the ``color`` parameter.

Parameters
input:t.Optional[t.Union[str, bytes, t.IO]]Undocumented
env:t.Optional[t.Mapping[str, t.Optional[str]]]Undocumented
color:boolUndocumented
Returns
t.Iterator[t.Tuple[io.BytesIO, t.Optional[io.BytesIO]]]Undocumented
def make_env(self, overrides=None): (source)

Returns the environment overrides for invoking a script.

Parameters
overrides:t.Optional[t.Mapping[str, t.Optional[str]]]Undocumented
Returns
t.Mapping[str, t.Optional[str]]Undocumented
charset = (source)

Undocumented

echo_stdin = (source)

Undocumented

Undocumented

mix_stderr = (source)

Undocumented