launch_testing.tools package
Submodules
Module contents
- class launch_testing.tools.ProcessProxy(process_action, proc_info, proc_output, *, output_filter=None)
Bases:
object
A proxy to interact with launch.actions.ExecuteProcess instances.
- property exit_code
- property output
- property running
- property stderr
- property stdout
- property target_process_action
- property terminated
- wait_for_output(condition=None, timeout=None)
Wait for the target process to produce any output, either over stdout or stderr.
- Parameters:
condition – a callable to wait on a specific output condition to be satisfied, or
None
(default) to wake on any output.timeout – time in seconds to wait, or
None
(default) to block indefinitely.
- Returns:
whether the condition has been satisfied or not.
- wait_for_shutdown(timeout=None)
Wait for the target process to shutdown.
- Parameters:
timeout – time in seconds to wait, or None to block indefinitely.
- Returns:
whether the target process shut down or not.
- launch_testing.tools.basic_output_filter(filtered_prefixes=None, filtered_patterns=None)
Create a line filtering function to help output testing.
- Parameters:
filtered_prefixes – A list of byte strings representing prefixes that will cause
output lines to be ignored if they start with one of the prefixes. By default lines starting with the process ID (‘pid’) and return code (‘rc’) will be ignored. :param filtered_patterns: A list of byte strings representing regexes that will cause output lines to be ignored if they match one of the regexes.
- launch_testing.tools.expect_output(text=None, *, lines=None, expected_text=None, expected_lines=None, strip_ansi_escape_sequences=True, strict=False)
Match output text or lines with expected text or lines.
Either (expected) text or (expected) lines can be provided but giving both results in a ValueError. If lines are given but a text is expected, these lines are joined using ‘n’. Likewise, if text is given but lines are expected, text is split into lines.
- Parameters:
expected_text – output text expectation, as supported by launch_testing.tools.text.build_text_match
expected_lines – output lines expectation, as supported by launch_testing.tools.text.build_line_match
text – output text to be matched
lines – output text lines to be matched
strip_ansi_escape_sequences – If True (default), strip ansi escape sequences from actual output before comparing
- launch_testing.tools.expected_output_from_file(path: str, encoding: str | None = None)
Get expected output lines from a file.
- Parameters:
path – path w/o extension of either a .txt file containing the lines
to be matched or a .regex file containing patterns to be searched for. :param encoding: the character encoding to be used when opening the file.
- launch_testing.tools.launch_process(launch_service, process_action, proc_info, proc_output, **kwargs)
Launch and interact with a process.
On context entering, start execution of a
process_action
using the givenlaunch_service
and yield a ProcessProxy to thatprocess_action
. On context exiting, shut the process down if it has not been terminated yet. All additional arguments are forwarded to ProcessProxy on construction.