def click_group_ex(): """Return extended version of click.group().""" # Color coding used to group command types, documented only here as we may # decide to change them later. # green : (default) as sequence step # blue : molecule own command, not dependent on scenario # yellow : special commands, like full test sequence, or login return click.group( cls=HelpColorsGroup, # Workaround to disable click help line truncation to ~80 chars # https://github.com/pallets/click/issues/486 context_settings=dict(max_content_width=9999, color=should_do_markup()), help_headers_color="yellow", help_options_color="green", help_options_custom_colors={ "drivers": "blue", "init": "blue", "list": "blue", "matrix": "blue", "login": "******", "reset": "blue", "test": "bright_yellow", }, result_callback=result_callback, )
self._config.scenario.name, underscore(self.__class__.__name__), extra={"markup": True}, ) rt = func(*args, **kwargs) # section close code goes here return rt return wrapper @lru_cache() def get_section_loggers() -> Iterable[Callable]: """Return a list of section wrappers to be added.""" default_section_loggers = [section_logger] if not os.getenv("CI"): return default_section_loggers elif os.getenv("GITHUB_ACTIONS"): return [github_actions_groups] + default_section_loggers elif os.getenv("GITLAB_CI"): return [gitlab_ci_sections] + default_section_loggers elif os.getenv("TRAVIS"): return [travis_ci_folds] + default_section_loggers # CI is set but no extra section_loggers apply. return default_section_loggers LOGGING_CONSOLE = Console(file=sys.stderr, force_terminal=should_do_markup(), theme=theme)
def test_markup_detection_tty_yes(mocker): mocker.patch("sys.stdout.isatty", return_value=True) mocker.patch("os.environ", {"TERM": "xterm"}) assert should_do_markup() mocker.resetall() mocker.stopall()
def test_markup_detection_tty_no(mocker): mocker.patch("os.environ", {}) mocker.patch("sys.stdout.isatty", return_value=False) assert not should_do_markup() mocker.resetall() mocker.stopall()
def test_markup_detection_pycolors1(monkeypatch): monkeypatch.setenv("PY_COLORS", "1") assert should_do_markup()