Skip to content

Commit a81ce1a

Browse files
committed
Fix test_util for Docutils 0.22+
1 parent 4051354 commit a81ce1a

File tree

1 file changed

+17
-18
lines changed

1 file changed

+17
-18
lines changed

tests/test_util/test_util_docutils_sphinx_directive.py

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
from types import SimpleNamespace
44

55
import docutils
6-
import pytest
76
from docutils import nodes
87
from docutils.parsers.rst.languages import en as english # type: ignore[attr-defined]
98
from docutils.parsers.rst.states import (
@@ -16,11 +15,6 @@
1615

1716
from sphinx.util.docutils import SphinxDirective, new_document
1817

19-
xfail_du_22 = pytest.mark.xfail(
20-
docutils.__version_info__ >= (0, 22, 0, 'alpha', 0),
21-
reason='expected failure on Docutils 0.22+',
22-
)
23-
2418

2519
def make_directive(
2620
*, env: SimpleNamespace, input_lines: StringList | None = None
@@ -37,23 +31,30 @@ def make_directive_and_state(
3731
if input_lines is not None:
3832
sm.input_lines = input_lines
3933
state = RSTState(sm)
40-
state.document = new_document('<tests>')
41-
state.document.settings.env = env
42-
state.document.settings.tab_width = 4
43-
state.document.settings.pep_references = None
44-
state.document.settings.rfc_references = None
34+
document = state.document = new_document('<tests>')
35+
document.settings.env = env
36+
document.settings.tab_width = 4
37+
document.settings.pep_references = None
38+
document.settings.rfc_references = None
4539
inliner = Inliner()
46-
inliner.init_customizations(state.document.settings)
40+
inliner.init_customizations(document.settings)
4741
state.inliner = inliner
4842
state.parent = None
4943
state.memo = SimpleNamespace(
50-
document=state.document,
44+
document=document,
45+
reporter=document.reporter,
5146
language=english,
52-
inliner=state.inliner,
53-
reporter=state.document.reporter,
54-
section_level=0,
5547
title_styles=[],
48+
# section_parents=[], # Docutils 0.22+
49+
section_level=0,
50+
section_bubble_up_kludge=False,
51+
inliner=inliner,
5652
)
53+
if docutils.__version_info__ >= (0, 22, 0, 'alpha', 0):
54+
# https://github.com/sphinx-doc/sphinx/issues/13539
55+
# https://sourceforge.net/p/docutils/code/10093/
56+
# https://sourceforge.net/p/docutils/patches/213/
57+
state.memo.section_parents = []
5758
directive = SphinxDirective(
5859
name='test_directive',
5960
arguments=[],
@@ -111,7 +112,6 @@ def test_sphinx_directive_get_location() -> None:
111112
assert directive.get_location() == '<source>:1'
112113

113114

114-
@xfail_du_22
115115
def test_sphinx_directive_parse_content_to_nodes() -> None:
116116
directive = make_directive(env=SimpleNamespace())
117117
content = 'spam\n====\n\nEggs! *Lobster thermidor.*'
@@ -128,7 +128,6 @@ def test_sphinx_directive_parse_content_to_nodes() -> None:
128128
assert node.children[1].astext() == 'Eggs! Lobster thermidor.'
129129

130130

131-
@xfail_du_22
132131
def test_sphinx_directive_parse_text_to_nodes() -> None:
133132
directive = make_directive(env=SimpleNamespace())
134133
content = 'spam\n====\n\nEggs! *Lobster thermidor.*'

0 commit comments

Comments
 (0)