| 214 | assert_never(lexer) |
| 215 | |
| 216 | def _get_pygments_formatter(self) -> TerminalFormatter: |
| 217 | from _pytest.config.exceptions import UsageError |
| 218 | |
| 219 | theme = os.getenv("PYTEST_THEME") |
| 220 | theme_mode = os.getenv("PYTEST_THEME_MODE", "dark") |
| 221 | |
| 222 | try: |
| 223 | return TerminalFormatter(bg=theme_mode, style=theme) |
| 224 | except pygments.util.ClassNotFound as e: |
| 225 | raise UsageError( |
| 226 | f"PYTEST_THEME environment variable has an invalid value: '{theme}'. " |
| 227 | "Hint: See available pygments styles with `pygmentize -L styles`." |
| 228 | ) from e |
| 229 | except pygments.util.OptionError as e: |
| 230 | raise UsageError( |
| 231 | f"PYTEST_THEME_MODE environment variable has an invalid value: '{theme_mode}'. " |
| 232 | "The allowed values are 'dark' (default) and 'light'." |
| 233 | ) from e |
| 234 | |
| 235 | def _highlight( |
| 236 | self, source: str, lexer: Literal["diff", "python"] = "python" |