# Automated tests for the `coloredlogs' package. # # Author: Peter Odding # Last Change: June 11, 2021 # URL: https://coloredlogs.readthedocs.io """Automated tests for the `coloredlogs` package.""" # Standard library modules. import contextlib import logging import logging.handlers import os import re import subprocess import sys import tempfile # External dependencies. from humanfriendly.compat import StringIO from humanfriendly.terminal import ANSI_COLOR_CODES, ANSI_CSI, ansi_style, ansi_wrap from humanfriendly.testing import PatchedAttribute, PatchedItem, TestCase, retry from humanfriendly.text import format, random_string # The module we're testing. import coloredlogs import coloredlogs.cli from coloredlogs import ( CHROOT_FILES, ColoredFormatter, NameNormalizer, decrease_verbosity, find_defined_levels, find_handler, find_hostname, find_program_name, find_username, get_level, increase_verbosity, install, is_verbose, level_to_number, match_stream_handler, parse_encoded_styles, set_level, walk_propagation_tree, ) from coloredlogs.demo import demonstrate_colored_logging from coloredlogs.syslog import SystemLogging, is_syslog_supported, match_syslog_handler from coloredlogs.converter import ( ColoredCronMailer, EIGHT_COLOR_PALETTE, capture, convert, ) # External test dependencies. from capturer import CaptureOutput from verboselogs import VerboseLogger # Compiled regular expression that matches a single line of output produced by # the default log format (does not include matching of ANSI escape sequences). PLAIN_TEXT_PATTERN = re.compile(r''' (?P \d{4}-\d{2}-\d{2} ) \s (?P