diff --git a/color.py b/color.py index 9d0ce7c36..03fb65537 100644 --- a/color.py +++ b/color.py @@ -14,6 +14,7 @@ import os import sys +from typing import Optional import pager @@ -84,7 +85,7 @@ def _Color(fg=None, bg=None, attr=None): DEFAULT = None -def SetDefaultColoring(state): +def SetDefaultColoring(state: Optional[str]) -> None: """Set coloring behavior to |state|. This is useful for overriding config options via the command line. @@ -97,9 +98,9 @@ def SetDefaultColoring(state): state = state.lower() if state in ("auto",): DEFAULT = state - elif state in ("always", "yes", "true", True): + elif state in ("always", "yes", "true"): DEFAULT = "always" - elif state in ("never", "no", "false", False): + elif state in ("never", "no", "false"): DEFAULT = "never" diff --git a/tests/conftest.py b/tests/conftest.py index a13edd7af..ce3c3d6ce 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -18,6 +18,7 @@ import pathlib import pytest +import color import platform_utils import repo_trace @@ -28,6 +29,16 @@ def disable_repo_trace(tmp_path): repo_trace._TRACE_FILE = str(tmp_path / "TRACE_FILE_from_test") +@pytest.fixture(autouse=True) +def restore_default_coloring() -> None: + """Force disable color for reproducible test behavior. + + The few tests that cover color behavior can still reset/change the color as + needed. + """ + color.SetDefaultColoring("never") + + # adapted from pytest-home 0.5.1 def _set_home(monkeypatch, path: pathlib.Path): """