3
3
from types import SimpleNamespace
4
4
5
5
import docutils
6
- import pytest
7
6
from docutils import nodes
8
7
from docutils .parsers .rst .languages import en as english # type: ignore[attr-defined]
9
8
from docutils .parsers .rst .states import (
16
15
17
16
from sphinx .util .docutils import SphinxDirective , new_document
18
17
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
-
24
18
25
19
def make_directive (
26
20
* , env : SimpleNamespace , input_lines : StringList | None = None
@@ -37,23 +31,30 @@ def make_directive_and_state(
37
31
if input_lines is not None :
38
32
sm .input_lines = input_lines
39
33
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
45
39
inliner = Inliner ()
46
- inliner .init_customizations (state . document .settings )
40
+ inliner .init_customizations (document .settings )
47
41
state .inliner = inliner
48
42
state .parent = None
49
43
state .memo = SimpleNamespace (
50
- document = state .document ,
44
+ document = document ,
45
+ reporter = document .reporter ,
51
46
language = english ,
52
- inliner = state .inliner ,
53
- reporter = state .document .reporter ,
54
- section_level = 0 ,
55
47
title_styles = [],
48
+ # section_parents=[], # Docutils 0.22+
49
+ section_level = 0 ,
50
+ section_bubble_up_kludge = False ,
51
+ inliner = inliner ,
56
52
)
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 = []
57
58
directive = SphinxDirective (
58
59
name = 'test_directive' ,
59
60
arguments = [],
@@ -111,7 +112,6 @@ def test_sphinx_directive_get_location() -> None:
111
112
assert directive .get_location () == '<source>:1'
112
113
113
114
114
- @xfail_du_22
115
115
def test_sphinx_directive_parse_content_to_nodes () -> None :
116
116
directive = make_directive (env = SimpleNamespace ())
117
117
content = 'spam\n ====\n \n Eggs! *Lobster thermidor.*'
@@ -128,7 +128,6 @@ def test_sphinx_directive_parse_content_to_nodes() -> None:
128
128
assert node .children [1 ].astext () == 'Eggs! Lobster thermidor.'
129
129
130
130
131
- @xfail_du_22
132
131
def test_sphinx_directive_parse_text_to_nodes () -> None :
133
132
directive = make_directive (env = SimpleNamespace ())
134
133
content = 'spam\n ====\n \n Eggs! *Lobster thermidor.*'
0 commit comments