sphinx/tests/test_transforms_reorder_nodes.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

97 lines
4.1 KiB
Python
Raw Normal View History

"""Tests the transformations"""
from docutils import nodes
from sphinx import addnodes
from sphinx.testing import restructuredtext
from sphinx.testing.util import assert_node
def test_transforms_reorder_consecutive_target_and_index_nodes_preserve_order(app):
text = ('.. index:: abc\n'
'.. index:: def\n'
'.. index:: ghi\n'
'.. index:: jkl\n'
'\n'
'text\n')
doctree = restructuredtext.parse(app, text)
assert_node(doctree, (addnodes.index,
addnodes.index,
addnodes.index,
addnodes.index,
nodes.target,
nodes.target,
nodes.target,
nodes.target,
nodes.paragraph))
assert_node(doctree[0], addnodes.index, entries=[('single', 'abc', 'index-0', '', None)])
assert_node(doctree[1], addnodes.index, entries=[('single', 'def', 'index-1', '', None)])
assert_node(doctree[2], addnodes.index, entries=[('single', 'ghi', 'index-2', '', None)])
assert_node(doctree[3], addnodes.index, entries=[('single', 'jkl', 'index-3', '', None)])
assert_node(doctree[4], nodes.target, refid='index-0')
assert_node(doctree[5], nodes.target, refid='index-1')
assert_node(doctree[6], nodes.target, refid='index-2')
assert_node(doctree[7], nodes.target, refid='index-3')
# assert_node(doctree[8], nodes.paragraph)
def test_transforms_reorder_consecutive_target_and_index_nodes_no_merge_across_other_nodes(app):
text = ('.. index:: abc\n'
'.. index:: def\n'
'\n'
'text\n'
'\n'
'.. index:: ghi\n'
'.. index:: jkl\n'
'\n'
'text\n')
doctree = restructuredtext.parse(app, text)
assert_node(doctree, (addnodes.index,
addnodes.index,
nodes.target,
nodes.target,
nodes.paragraph,
addnodes.index,
addnodes.index,
nodes.target,
nodes.target,
nodes.paragraph))
assert_node(doctree[0], addnodes.index, entries=[('single', 'abc', 'index-0', '', None)])
assert_node(doctree[1], addnodes.index, entries=[('single', 'def', 'index-1', '', None)])
assert_node(doctree[2], nodes.target, refid='index-0')
assert_node(doctree[3], nodes.target, refid='index-1')
# assert_node(doctree[4], nodes.paragraph)
assert_node(doctree[5], addnodes.index, entries=[('single', 'ghi', 'index-2', '', None)])
assert_node(doctree[6], addnodes.index, entries=[('single', 'jkl', 'index-3', '', None)])
assert_node(doctree[7], nodes.target, refid='index-2')
assert_node(doctree[8], nodes.target, refid='index-3')
# assert_node(doctree[9], nodes.paragraph)
def test_transforms_reorder_consecutive_target_and_index_nodes_merge_with_labels(app):
text = ('.. _abc:\n'
'.. index:: def\n'
'.. _ghi:\n'
'.. index:: jkl\n'
'.. _mno:\n'
'\n'
'Heading\n'
'=======\n')
doctree = restructuredtext.parse(app, text)
assert_node(doctree, (nodes.title,
addnodes.index,
addnodes.index,
nodes.target,
nodes.target,
nodes.target,
nodes.target,
nodes.target))
# assert_node(doctree[8], nodes.title)
assert_node(doctree[1], addnodes.index, entries=[('single', 'def', 'index-0', '', None)])
assert_node(doctree[2], addnodes.index, entries=[('single', 'jkl', 'index-1', '', None)])
assert_node(doctree[3], nodes.target, refid='abc')
assert_node(doctree[4], nodes.target, refid='index-0')
assert_node(doctree[5], nodes.target, refid='ghi')
assert_node(doctree[6], nodes.target, refid='index-1')
assert_node(doctree[7], nodes.target, refid='mno')