Skip to content

Commit 2c93423

Browse files
authored
Merge pull request #13116 from pytest-dev/patchback/backports/8.3.x/bdfc3a99bd733f385f150446caef6d5843bb6418/pr-13113
[PR #13113/bdfc3a99 backport][8.3.x] Fix selftests with Pygments >= 2.19.0
2 parents a7d2fc3 + ad4081f commit 2c93423

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

Diff for: changelog/13112.contrib.rst

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fixed selftest failures in ``test_terminal.py`` with Pygments >= 2.19.0

Diff for: testing/conftest.py

+7
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,13 @@
22
from __future__ import annotations
33

44
import dataclasses
5+
import importlib.metadata
56
import re
67
import sys
78
from typing import Generator
89

10+
from packaging.version import Version
11+
912
from _pytest.monkeypatch import MonkeyPatch
1013
from _pytest.pytester import Pytester
1114
import pytest
@@ -168,6 +171,9 @@ def color_mapping():
168171
169172
Used by tests which check the actual colors output by pytest.
170173
"""
174+
# https://github.com/pygments/pygments/commit/d24e272894a56a98b1b718d9ac5fabc20124882a
175+
pygments_version = Version(importlib.metadata.version("pygments"))
176+
pygments_has_kwspace_hl = pygments_version >= Version("2.19")
171177

172178
class ColorMapping:
173179
COLORS = {
@@ -180,6 +186,7 @@ class ColorMapping:
180186
"bold": "\x1b[1m",
181187
"reset": "\x1b[0m",
182188
"kw": "\x1b[94m",
189+
"kwspace": "\x1b[90m \x1b[39;49;00m" if pygments_has_kwspace_hl else " ",
183190
"hl-reset": "\x1b[39;49;00m",
184191
"function": "\x1b[92m",
185192
"number": "\x1b[94m",

Diff for: testing/test_terminal.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -1299,13 +1299,13 @@ def test_this():
12991299
"=*= FAILURES =*=",
13001300
"{red}{bold}_*_ test_this _*_{reset}",
13011301
"",
1302-
" {reset}{kw}def{hl-reset} {function}test_this{hl-reset}():{endline}",
1302+
" {reset}{kw}def{hl-reset}{kwspace}{function}test_this{hl-reset}():{endline}",
13031303
"> fail(){endline}",
13041304
"",
13051305
"{bold}{red}test_color_yes.py{reset}:5: ",
13061306
"_ _ * _ _*",
13071307
"",
1308-
" {reset}{kw}def{hl-reset} {function}fail{hl-reset}():{endline}",
1308+
" {reset}{kw}def{hl-reset}{kwspace}{function}fail{hl-reset}():{endline}",
13091309
"> {kw}assert{hl-reset} {number}0{hl-reset}{endline}",
13101310
"{bold}{red}E assert 0{reset}",
13111311
"",
@@ -2585,7 +2585,7 @@ def test_foo():
25852585
result.stdout.fnmatch_lines(
25862586
color_mapping.format_for_fnmatch(
25872587
[
2588-
" {reset}{kw}def{hl-reset} {function}test_foo{hl-reset}():{endline}",
2588+
" {reset}{kw}def{hl-reset}{kwspace}{function}test_foo{hl-reset}():{endline}",
25892589
"> {kw}assert{hl-reset} {number}1{hl-reset} == {number}10{hl-reset}{endline}",
25902590
"{bold}{red}E assert 1 == 10{reset}",
25912591
]
@@ -2607,7 +2607,7 @@ def test_foo():
26072607
result.stdout.fnmatch_lines(
26082608
color_mapping.format_for_fnmatch(
26092609
[
2610-
" {reset}{kw}def{hl-reset} {function}test_foo{hl-reset}():{endline}",
2610+
" {reset}{kw}def{hl-reset}{kwspace}{function}test_foo{hl-reset}():{endline}",
26112611
" {print}print{hl-reset}({str}'''{hl-reset}{str}{hl-reset}",
26122612
"> {str} {hl-reset}{str}'''{hl-reset}); {kw}assert{hl-reset} {number}0{hl-reset}{endline}",
26132613
"{bold}{red}E assert 0{reset}",
@@ -2630,7 +2630,7 @@ def test_foo():
26302630
result.stdout.fnmatch_lines(
26312631
color_mapping.format_for_fnmatch(
26322632
[
2633-
" {reset}{kw}def{hl-reset} {function}test_foo{hl-reset}():{endline}",
2633+
" {reset}{kw}def{hl-reset}{kwspace}{function}test_foo{hl-reset}():{endline}",
26342634
"> {kw}assert{hl-reset} {number}1{hl-reset} == {number}10{hl-reset}{endline}",
26352635
"{bold}{red}E assert 1 == 10{reset}",
26362636
]

0 commit comments

Comments
 (0)