pypy.interpreter.test.apptest_traceback:test_colors_in_traceback
def test_colors_in_traceback():
import os
def division_by_zero(a, b):
return (
a + b / 0 # abc
)
old_value = os.environ.get('FORCE_COLOR', None)
os.environ['FORCE_COLOR'] = '1'
try:
from _colorize import can_colorize, ANSIColors
assert can_colorize()
with raises(ZeroDivisionError) as exc_info:
division_by_zero(1, 2)
original_std_err = sys.stderr
sys.stderr = buffer = Buffer()
original_exc_format = sys.excepthook(
exc_info.type, exc_info.value, exc_info.value.__traceback__
)
sys.stderr = original_std_err
expected_exc_format = [
f' a + {ANSIColors.BOLD_RED}b / 0{ANSIColors.RESET} # abc',
f' {ANSIColors.BOLD_RED}~~^~~{ANSIColors.RESET}',
f'{ANSIColors.BOLD_MAGENTA}ZeroDivisionError{ANSIColors.RESET}: {ANSIColors.MAGENTA}division by zero{ANSIColors.RESET}'
]
> assert buffer.get_lines()[-3:] == expected_exc_format
E AssertionError: assert [' a ...sion by zero'] == [' a ... zero\x1b[0m']
E At index 0 diff: ' a + b / 0 # abc' != ' a + \x1b[1;31mb / 0\x1b[0m # abc'
E Use -v to get the full diff
../build/pypy/interpreter/test/apptest_traceback.py:192: AssertionError
builder: pypy-c-jit-linux-x86-64 build #11848+
test: pypy.interpreter.test.apptest_traceback:test_colors_in_traceback