(text: str, regex_pattern: str)
| 61 | |
| 62 | |
| 63 | def assert_multiline_match(text: str, regex_pattern: str): |
| 64 | regex_lines = regex_pattern.strip().splitlines() |
| 65 | text_lines = strip_ansi_colors(text).strip().splitlines() |
| 66 | |
| 67 | if len(text_lines) < len(regex_lines): |
| 68 | assert False, f'Actual text has {len(regex_lines) - len(text_lines)} less lines than a pattern.\nActual text:\n{text}' |
| 69 | |
| 70 | if len(text_lines) > len(regex_lines): |
| 71 | assert False, f'Actual text has {len(text_lines) - len(regex_lines)} more lines than a pattern.\nActual text:\n{text}' |
| 72 | |
| 73 | for index, (regex_line, text_line) in enumerate(zip(regex_lines, text_lines)): |
| 74 | match = re.fullmatch(regex_line, text_line) |
| 75 | assert match, f'Actual Line #{index+1}:\n{text_line}\n does not match the Regex pattern:\n{regex_line}' |
| 76 | |
| 77 | |
| 78 | def get_logger_handler(logger: logging.Logger) -> Optional[logging.Handler]: |
no outgoing calls