29 lines
774 B
Python
29 lines
774 B
Python
import re
|
|
from io import StringIO
|
|
|
|
import pytest
|
|
from _pytest._io import TerminalWriter
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"has_markup, expected",
|
|
[
|
|
pytest.param(
|
|
True, "{kw}assert{hl-reset} {number}0{hl-reset}\n", id="with markup"
|
|
),
|
|
pytest.param(False, "assert 0\n", id="no markup"),
|
|
],
|
|
)
|
|
def test_code_highlight(has_markup, expected, color_mapping):
|
|
f = StringIO()
|
|
tw = TerminalWriter(f)
|
|
tw.hasmarkup = has_markup
|
|
tw._write_source(["assert 0"])
|
|
assert f.getvalue().splitlines(keepends=True) == color_mapping.format([expected])
|
|
|
|
with pytest.raises(
|
|
ValueError,
|
|
match=re.escape("indents size (2) should have same size as lines (1)"),
|
|
):
|
|
tw._write_source(["assert 0"], [" ", " "])
|