forked from pool/python-Sphinx
- Add pygments.patch to fix tests with Pygments 2.19
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Sphinx?expand=0&rev=275
This commit is contained in:
parent
ddc596167a
commit
010541a9fc
224
pygments.patch
Normal file
224
pygments.patch
Normal file
@ -0,0 +1,224 @@
|
|||||||
|
From 5ff3740063c1ac57f17ecd697bcd06cc1de4e75c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Adam Turner <9087854+aa-turner@users.noreply.github.com>
|
||||||
|
Date: Mon, 6 Jan 2025 06:56:10 +0000
|
||||||
|
Subject: [PATCH] Adapt tests for Pygments 2.19
|
||||||
|
|
||||||
|
---
|
||||||
|
tests/test_builders/test_build_html_code.py | 8 +++++++-
|
||||||
|
tests/test_builders/test_build_latex.py | 9 +++++++--
|
||||||
|
tests/test_directives/test_directive_code.py | 15 +++++++++++++--
|
||||||
|
tests/test_extensions/test_ext_viewcode.py | 8 +++++++-
|
||||||
|
tests/test_highlighting.py | 2 +-
|
||||||
|
tests/test_intl/test_intl.py | 15 +++++++++++++--
|
||||||
|
6 files changed, 48 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
Index: sphinx-8.1.3/tests/test_builders/test_build_html_code.py
|
||||||
|
===================================================================
|
||||||
|
--- sphinx-8.1.3.orig/tests/test_builders/test_build_html_code.py
|
||||||
|
+++ sphinx-8.1.3/tests/test_builders/test_build_html_code.py
|
||||||
|
@@ -1,3 +1,4 @@
|
||||||
|
+import pygments
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
|
@@ -32,11 +33,16 @@ def test_html_codeblock_linenos_style_in
|
||||||
|
|
||||||
|
@pytest.mark.sphinx('html', testroot='reST-code-role')
|
||||||
|
def test_html_code_role(app):
|
||||||
|
+ if tuple(map(int, pygments.__version__.split('.')[:2])) >= (2, 19):
|
||||||
|
+ sp = '<span class="w"> </span>'
|
||||||
|
+ else:
|
||||||
|
+ sp = ' '
|
||||||
|
+
|
||||||
|
app.build()
|
||||||
|
content = (app.outdir / 'index.html').read_text(encoding='utf8')
|
||||||
|
|
||||||
|
common_content = (
|
||||||
|
- '<span class="k">def</span> <span class="nf">foo</span>'
|
||||||
|
+ f'<span class="k">def</span>{sp}<span class="nf">foo</span>'
|
||||||
|
'<span class="p">(</span>'
|
||||||
|
'<span class="mi">1</span> '
|
||||||
|
'<span class="o">+</span> '
|
||||||
|
Index: sphinx-8.1.3/tests/test_builders/test_build_latex.py
|
||||||
|
===================================================================
|
||||||
|
--- sphinx-8.1.3.orig/tests/test_builders/test_build_latex.py
|
||||||
|
+++ sphinx-8.1.3/tests/test_builders/test_build_latex.py
|
||||||
|
@@ -8,6 +8,7 @@ from pathlib import Path
|
||||||
|
from shutil import copyfile
|
||||||
|
from subprocess import CalledProcessError
|
||||||
|
|
||||||
|
+import pygments
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from sphinx.builders.latex import default_latex_documents
|
||||||
|
@@ -2127,12 +2128,16 @@ def test_latex_container(app):
|
||||||
|
|
||||||
|
@pytest.mark.sphinx('latex', testroot='reST-code-role')
|
||||||
|
def test_latex_code_role(app):
|
||||||
|
+ if tuple(map(int, pygments.__version__.split('.')[:2])) >= (2, 19):
|
||||||
|
+ sp = r'\PYG{+w}{ }'
|
||||||
|
+ else:
|
||||||
|
+ sp = ' '
|
||||||
|
+
|
||||||
|
app.build()
|
||||||
|
content = (app.outdir / 'projectnamenotset.tex').read_text(encoding='utf8')
|
||||||
|
|
||||||
|
common_content = (
|
||||||
|
- r'\PYG{k}{def} '
|
||||||
|
- r'\PYG{n+nf}{foo}'
|
||||||
|
+ r'\PYG{k}{def}' + sp + r'\PYG{n+nf}{foo}'
|
||||||
|
r'\PYG{p}{(}'
|
||||||
|
r'\PYG{l+m+mi}{1} '
|
||||||
|
r'\PYG{o}{+} '
|
||||||
|
Index: sphinx-8.1.3/tests/test_directives/test_directive_code.py
|
||||||
|
===================================================================
|
||||||
|
--- sphinx-8.1.3.orig/tests/test_directives/test_directive_code.py
|
||||||
|
+++ sphinx-8.1.3/tests/test_directives/test_directive_code.py
|
||||||
|
@@ -2,6 +2,7 @@
|
||||||
|
|
||||||
|
import os.path
|
||||||
|
|
||||||
|
+import pygments
|
||||||
|
import pytest
|
||||||
|
from docutils import nodes
|
||||||
|
|
||||||
|
@@ -393,6 +394,11 @@ def test_literal_include_block_start_wit
|
||||||
|
|
||||||
|
@pytest.mark.sphinx('html', testroot='directive-code')
|
||||||
|
def test_literal_include_linenos(app):
|
||||||
|
+ if tuple(map(int, pygments.__version__.split('.')[:2])) >= (2, 19):
|
||||||
|
+ sp = '<span class="w"> </span>'
|
||||||
|
+ else:
|
||||||
|
+ sp = ' '
|
||||||
|
+
|
||||||
|
app.build(filenames=[app.srcdir / 'linenos.rst'])
|
||||||
|
html = (app.outdir / 'linenos.html').read_text(encoding='utf8')
|
||||||
|
|
||||||
|
@@ -410,7 +416,7 @@ def test_literal_include_linenos(app):
|
||||||
|
|
||||||
|
# :lines: 5-9
|
||||||
|
assert (
|
||||||
|
- '<span class="linenos">5</span><span class="k">class</span> '
|
||||||
|
+ f'<span class="linenos">5</span><span class="k">class</span>{sp}'
|
||||||
|
'<span class="nc">Foo</span><span class="p">:</span>'
|
||||||
|
) in html
|
||||||
|
|
||||||
|
@@ -560,12 +566,17 @@ def test_code_block_highlighted(app):
|
||||||
|
|
||||||
|
@pytest.mark.sphinx('html', testroot='directive-code')
|
||||||
|
def test_linenothreshold(app):
|
||||||
|
+ if tuple(map(int, pygments.__version__.split('.')[:2])) >= (2, 19):
|
||||||
|
+ sp = '<span class="w"> </span>'
|
||||||
|
+ else:
|
||||||
|
+ sp = ' '
|
||||||
|
+
|
||||||
|
app.build(filenames=[app.srcdir / 'linenothreshold.rst'])
|
||||||
|
html = (app.outdir / 'linenothreshold.html').read_text(encoding='utf8')
|
||||||
|
|
||||||
|
# code-block using linenothreshold
|
||||||
|
assert (
|
||||||
|
- '<span class="linenos">1</span><span class="k">class</span> '
|
||||||
|
+ f'<span class="linenos">1</span><span class="k">class</span>{sp}'
|
||||||
|
'<span class="nc">Foo</span><span class="p">:</span>'
|
||||||
|
) in html
|
||||||
|
|
||||||
|
Index: sphinx-8.1.3/tests/test_extensions/test_ext_viewcode.py
|
||||||
|
===================================================================
|
||||||
|
--- sphinx-8.1.3.orig/tests/test_extensions/test_ext_viewcode.py
|
||||||
|
+++ sphinx-8.1.3/tests/test_extensions/test_ext_viewcode.py
|
||||||
|
@@ -6,6 +6,7 @@ import re
|
||||||
|
import shutil
|
||||||
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
|
+import pygments
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
@@ -13,6 +14,11 @@ if TYPE_CHECKING:
|
||||||
|
|
||||||
|
|
||||||
|
def check_viewcode_output(app: SphinxTestApp) -> str:
|
||||||
|
+ if tuple(map(int, pygments.__version__.split('.')[:2])) >= (2, 19):
|
||||||
|
+ sp = '<span> </span>'
|
||||||
|
+ else:
|
||||||
|
+ sp = ' '
|
||||||
|
+
|
||||||
|
warnings = re.sub(r'\\+', '/', app.warning.getvalue())
|
||||||
|
assert re.findall(
|
||||||
|
r"index.rst:\d+: WARNING: Object named 'func1' not found in include "
|
||||||
|
@@ -41,7 +47,7 @@ def check_viewcode_output(app: SphinxTes
|
||||||
|
'<a class="viewcode-back" href="../../index.html#spam.Class1">[docs]</a>\n'
|
||||||
|
) in result
|
||||||
|
assert '<span>@decorator</span>\n' in result
|
||||||
|
- assert '<span>class</span> <span>Class1</span><span>:</span>\n' in result
|
||||||
|
+ assert f'<span>class</span>{sp}<span>Class1</span><span>:</span>\n' in result
|
||||||
|
assert '<span> </span><span>"""</span>\n' in result
|
||||||
|
assert '<span> this is Class1</span>\n' in result
|
||||||
|
assert '<span> """</span>\n' in result
|
||||||
|
Index: sphinx-8.1.3/tests/test_highlighting.py
|
||||||
|
===================================================================
|
||||||
|
--- sphinx-8.1.3.orig/tests/test_highlighting.py
|
||||||
|
+++ sphinx-8.1.3/tests/test_highlighting.py
|
||||||
|
@@ -10,7 +10,7 @@ from pygments.token import Name, Text
|
||||||
|
|
||||||
|
from sphinx.highlighting import PygmentsBridge
|
||||||
|
|
||||||
|
-if tuple(map(int, pygments.__version__.split('.')))[:2] < (2, 18):
|
||||||
|
+if tuple(map(int, pygments.__version__.split('.')[:2])) < (2, 18):
|
||||||
|
from pygments.formatter import Formatter
|
||||||
|
|
||||||
|
Formatter.__class_getitem__ = classmethod(lambda cls, name: cls) # type: ignore[attr-defined]
|
||||||
|
Index: sphinx-8.1.3/tests/test_intl/test_intl.py
|
||||||
|
===================================================================
|
||||||
|
--- sphinx-8.1.3.orig/tests/test_intl/test_intl.py
|
||||||
|
+++ sphinx-8.1.3/tests/test_intl/test_intl.py
|
||||||
|
@@ -10,6 +10,7 @@ import shutil
|
||||||
|
import time
|
||||||
|
from io import StringIO
|
||||||
|
|
||||||
|
+import pygments
|
||||||
|
import pytest
|
||||||
|
from babel.messages import mofile, pofile
|
||||||
|
from babel.messages.catalog import Catalog
|
||||||
|
@@ -1473,6 +1474,11 @@ def test_xml_strange_markup(app):
|
||||||
|
@pytest.mark.sphinx('html', testroot='intl')
|
||||||
|
@pytest.mark.test_params(shared_result='test_intl_basic')
|
||||||
|
def test_additional_targets_should_not_be_translated(app):
|
||||||
|
+ if tuple(map(int, pygments.__version__.split('.')[:2])) >= (2, 19):
|
||||||
|
+ sp = '<span class="w"> </span>'
|
||||||
|
+ else:
|
||||||
|
+ sp = ' '
|
||||||
|
+
|
||||||
|
app.build()
|
||||||
|
# [literalblock.txt]
|
||||||
|
result = (app.outdir / 'literalblock.html').read_text(encoding='utf8')
|
||||||
|
@@ -1511,7 +1517,7 @@ def test_additional_targets_should_not_b
|
||||||
|
# doctest block should not be translated but be highlighted
|
||||||
|
expected_expr = (
|
||||||
|
"""<span class="gp">>>> </span>"""
|
||||||
|
- """<span class="kn">import</span> <span class="nn">sys</span> """
|
||||||
|
+ f"""<span class="kn">import</span>{sp}<span class="nn">sys</span> """
|
||||||
|
"""<span class="c1"># sys importing</span>"""
|
||||||
|
)
|
||||||
|
assert_count(expected_expr, result, 1)
|
||||||
|
@@ -1556,6 +1562,11 @@ def test_additional_targets_should_not_b
|
||||||
|
},
|
||||||
|
)
|
||||||
|
def test_additional_targets_should_be_translated(app):
|
||||||
|
+ if tuple(map(int, pygments.__version__.split('.')[:2])) >= (2, 19):
|
||||||
|
+ sp = '<span class="w"> </span>'
|
||||||
|
+ else:
|
||||||
|
+ sp = ' '
|
||||||
|
+
|
||||||
|
app.build()
|
||||||
|
# [literalblock.txt]
|
||||||
|
result = (app.outdir / 'literalblock.html').read_text(encoding='utf8')
|
||||||
|
@@ -1605,7 +1616,7 @@ def test_additional_targets_should_be_tr
|
||||||
|
# doctest block should not be translated but be highlighted
|
||||||
|
expected_expr = (
|
||||||
|
"""<span class="gp">>>> </span>"""
|
||||||
|
- """<span class="kn">import</span> <span class="nn">sys</span> """
|
||||||
|
+ f"""<span class="kn">import</span>{sp}<span class="nn">sys</span> """
|
||||||
|
"""<span class="c1"># SYS IMPORTING</span>"""
|
||||||
|
)
|
||||||
|
assert_count(expected_expr, result, 1)
|
@ -1,3 +1,8 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jan 17 11:52:23 UTC 2025 - Markéta Machová <mmachova@suse.com>
|
||||||
|
|
||||||
|
- Add pygments.patch to fix tests with Pygments 2.19
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Nov 20 17:51:19 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
Wed Nov 20 17:51:19 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package python-Sphinx
|
# spec file for package python-Sphinx
|
||||||
#
|
#
|
||||||
# Copyright (c) 2024 SUSE LLC
|
# Copyright (c) 2025 SUSE LLC
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -42,6 +42,8 @@ Source3: requests.inv
|
|||||||
Source4: readthedocs.inv
|
Source4: readthedocs.inv
|
||||||
Source5: update-intersphinx.sh
|
Source5: update-intersphinx.sh
|
||||||
Source99: python-Sphinx.keyring
|
Source99: python-Sphinx.keyring
|
||||||
|
# PATCH-FIX-UPSTREAM https://github.com/sphinx-doc/sphinx/commit/5ff3740063c1ac57f17ecd697bcd06cc1de4e75c Adapt tests for Pygments 2.19
|
||||||
|
Patch: pygments.patch
|
||||||
BuildRequires: %{python_module base}
|
BuildRequires: %{python_module base}
|
||||||
BuildRequires: %{python_module flit-core}
|
BuildRequires: %{python_module flit-core}
|
||||||
BuildRequires: %{python_module pip}
|
BuildRequires: %{python_module pip}
|
||||||
@ -55,29 +57,24 @@ Requires: python-Babel >= 1.3
|
|||||||
Requires: python-Jinja2 >= 2.3
|
Requires: python-Jinja2 >= 2.3
|
||||||
Requires: python-Pygments >= 2.14
|
Requires: python-Pygments >= 2.14
|
||||||
Requires: python-alabaster >= 0.7
|
Requires: python-alabaster >= 0.7
|
||||||
Requires: python-defusedxml >= 0.7.1
|
|
||||||
Requires: python-docutils >= 0.12
|
Requires: python-docutils >= 0.12
|
||||||
Requires: python-imagesize
|
Requires: python-imagesize
|
||||||
Requires: python-packaging
|
Requires: python-packaging
|
||||||
Requires: python-requests >= 2.5.0
|
Requires: python-requests >= 2.5.0
|
||||||
Requires: python-snowballstemmer >= 1.1
|
Requires: python-snowballstemmer >= 1.1
|
||||||
Requires: python-sphinx_rtd_theme
|
|
||||||
Requires: python-sphinxcontrib-applehelp
|
Requires: python-sphinxcontrib-applehelp
|
||||||
Requires: python-sphinxcontrib-devhelp
|
Requires: python-sphinxcontrib-devhelp
|
||||||
Requires: python-sphinxcontrib-htmlhelp >= 2.0.0
|
Requires: python-sphinxcontrib-htmlhelp >= 2.0.0
|
||||||
Requires: python-sphinxcontrib-jsmath
|
Requires: python-sphinxcontrib-jsmath
|
||||||
Requires: python-sphinxcontrib-qthelp >= 1.0.2
|
Requires: python-sphinxcontrib-qthelp >= 1.0.2
|
||||||
Requires: python-sphinxcontrib-serializinghtml >= 1.1.9
|
Requires: python-sphinxcontrib-serializinghtml >= 1.1.9
|
||||||
Requires: python-sphinxcontrib-websupport
|
|
||||||
Requires(post): update-alternatives
|
Requires(post): update-alternatives
|
||||||
Requires(postun): update-alternatives
|
Requires(postun): update-alternatives
|
||||||
Recommends: python-SQLAlchemy >= 0.9
|
Recommends: python-SQLAlchemy >= 0.9
|
||||||
Recommends: python-Sphinx-doc-man
|
Recommends: python-Sphinx-doc-man
|
||||||
Recommends: python-Whoosh >= 2.0
|
Recommends: python-Whoosh >= 2.0
|
||||||
|
Suggests: python-sphinx_rtd_theme
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
%if 0%{?python_version_nodots} < 310
|
|
||||||
Requires: python-importlib-metadata >= 4.4
|
|
||||||
%endif
|
|
||||||
%if %{with test}
|
%if %{with test}
|
||||||
BuildRequires: %{python_module Cython}
|
BuildRequires: %{python_module Cython}
|
||||||
BuildRequires: %{python_module Sphinx = %{version}}
|
BuildRequires: %{python_module Sphinx = %{version}}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user