Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,6 @@ module = [
"tests.test_domains.test_domain_py_fields",
"tests.test_domains.test_domain_py_pyfunction",
"tests.test_domains.test_domain_py_pyobject",
"tests.test_domains.test_domain_rst",
"tests.test_domains.test_domain_std",
# tests/test_environment
"tests.test_environment.test_environment_toctree",
Expand Down
50 changes: 26 additions & 24 deletions tests/test_builders/test_build.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@

from sphinx.errors import SphinxError

from tests.utils import extract_element, extract_node

if TYPE_CHECKING:
from collections.abc import Callable
from pathlib import Path
Expand Down Expand Up @@ -68,51 +70,51 @@ def test_image_glob(app: SphinxTestApp) -> None:
doctree = app.env.get_doctree('index')
assert isinstance(doctree[0], nodes.Element)

assert isinstance(doctree[0][1], nodes.image)
assert doctree[0][1]['candidates'] == {'*': 'rimg.png'}
assert doctree[0][1]['uri'] == 'rimg.png'
assert isinstance(extract_node(doctree, 0, 1), nodes.image)
assert extract_element(doctree, 0, 1)['candidates'] == {'*': 'rimg.png'}
assert extract_element(doctree, 0, 1)['uri'] == 'rimg.png'

assert isinstance(doctree[0][2], nodes.figure)
assert isinstance(doctree[0][2][0], nodes.image)
assert doctree[0][2][0]['candidates'] == {'*': 'rimg.png'}
assert doctree[0][2][0]['uri'] == 'rimg.png'
assert isinstance(extract_node(doctree, 0, 2), nodes.figure)
assert isinstance(extract_node(doctree, 0, 2, 0), nodes.image)
assert extract_element(doctree, 0, 2, 0)['candidates'] == {'*': 'rimg.png'}
assert extract_element(doctree, 0, 2, 0)['uri'] == 'rimg.png'

assert isinstance(doctree[0][3], nodes.image)
assert doctree[0][3]['candidates'] == {
assert isinstance(extract_node(doctree, 0, 3), nodes.image)
assert extract_element(doctree, 0, 3)['candidates'] == {
'application/pdf': 'img.pdf',
'image/gif': 'img.gif',
'image/png': 'img.png',
}
assert doctree[0][3]['uri'] == 'img.*'
assert extract_element(doctree, 0, 3)['uri'] == 'img.*'

assert isinstance(doctree[0][4], nodes.figure)
assert isinstance(doctree[0][4][0], nodes.image)
assert doctree[0][4][0]['candidates'] == {
assert isinstance(extract_node(doctree, 0, 4), nodes.figure)
assert isinstance(extract_node(doctree, 0, 4, 0), nodes.image)
assert extract_element(doctree, 0, 4, 0)['candidates'] == {
'application/pdf': 'img.pdf',
'image/gif': 'img.gif',
'image/png': 'img.png',
}
assert doctree[0][4][0]['uri'] == 'img.*'
assert extract_element(doctree, 0, 4, 0)['uri'] == 'img.*'

# subdir/index.rst
doctree = app.env.get_doctree('subdir/index')
assert isinstance(doctree[0], nodes.Element)

assert isinstance(doctree[0][1], nodes.image)
assert doctree[0][1]['candidates'] == {'*': 'subdir/rimg.png'}
assert doctree[0][1]['uri'] == 'subdir/rimg.png'
assert isinstance(extract_node(doctree, 0, 1), nodes.image)
assert extract_element(doctree, 0, 1)['candidates'] == {'*': 'subdir/rimg.png'}
assert extract_element(doctree, 0, 1)['uri'] == 'subdir/rimg.png'

assert isinstance(doctree[0][2], nodes.image)
assert doctree[0][2]['candidates'] == {
assert isinstance(extract_node(doctree, 0, 2), nodes.image)
assert extract_element(doctree, 0, 2)['candidates'] == {
'application/pdf': 'subdir/svgimg.pdf',
'image/svg+xml': 'subdir/svgimg.svg',
}
assert doctree[0][2]['uri'] == 'subdir/svgimg.*'
assert extract_element(doctree, 0, 2)['uri'] == 'subdir/svgimg.*'

assert isinstance(doctree[0][3], nodes.figure)
assert isinstance(doctree[0][3][0], nodes.image)
assert doctree[0][3][0]['candidates'] == {
assert isinstance(extract_node(doctree, 0, 3), nodes.figure)
assert isinstance(extract_node(doctree, 0, 3, 0), nodes.image)
assert extract_element(doctree, 0, 3, 0)['candidates'] == {
'application/pdf': 'subdir/svgimg.pdf',
'image/svg+xml': 'subdir/svgimg.svg',
}
assert doctree[0][3][0]['uri'] == 'subdir/svgimg.*'
assert extract_element(doctree, 0, 3, 0)['uri'] == 'subdir/svgimg.*'
16 changes: 9 additions & 7 deletions tests/test_directives/test_directive_object_description.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
from sphinx.testing import restructuredtext
from sphinx.util.docutils import _parse_str_to_doctree

from tests.utils import extract_node

if TYPE_CHECKING:
from sphinx.application import Sphinx
from sphinx.environment import BuildEnvironment
Expand Down Expand Up @@ -58,13 +60,13 @@ def test_object_description_sections(app: SphinxTestApp) -> None:

assert isinstance(doctree[0], addnodes.index)
assert isinstance(doctree[1], addnodes.desc)
assert isinstance(doctree[1][0], addnodes.desc_signature)
assert isinstance(doctree[1][1], addnodes.desc_content)
assert isinstance(doctree[1][1][0], nodes.section)
assert isinstance(doctree[1][1][0][0], nodes.title)
assert doctree[1][1][0][0][0] == 'Overview'
assert isinstance(doctree[1][1][0][1], nodes.paragraph)
assert doctree[1][1][0][1][0] == 'Lorem ipsum dolar sit amet'
assert isinstance(extract_node(doctree, 1, 0), addnodes.desc_signature)
assert isinstance(extract_node(doctree, 1, 1), addnodes.desc_content)
assert isinstance(extract_node(doctree, 1, 1, 0), nodes.section)
assert isinstance(extract_node(doctree, 1, 1, 0, 0), nodes.title)
assert extract_node(doctree, 1, 1, 0, 0, 0) == 'Overview'
assert isinstance(extract_node(doctree, 1, 1, 0, 1), nodes.paragraph)
assert extract_node(doctree, 1, 1, 0, 1, 0) == 'Lorem ipsum dolar sit amet'


@pytest.mark.sphinx('html', testroot='_blank')
Expand Down
20 changes: 11 additions & 9 deletions tests/test_directives/test_directive_other.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
from sphinx.testing import restructuredtext
from sphinx.testing.util import assert_node

from tests.utils import extract_node

if TYPE_CHECKING:
from sphinx.testing.util import SphinxTestApp

Expand All @@ -24,7 +26,7 @@ def test_toctree(app):
doctree = restructuredtext.parse(app, text, 'index')
assert_node(doctree, [nodes.document, nodes.compound, addnodes.toctree])
assert_node(
doctree[0][0],
extract_node(doctree, 0, 0),
entries=[(None, 'foo'), (None, 'bar/index'), (None, 'baz')],
includefiles=['foo', 'bar/index', 'baz'],
)
Expand All @@ -38,7 +40,7 @@ def test_relative_toctree(app):
doctree = restructuredtext.parse(app, text, 'bar/index')
assert_node(doctree, [nodes.document, nodes.compound, addnodes.toctree])
assert_node(
doctree[0][0],
extract_node(doctree, 0, 0),
entries=[
(None, 'bar/bar_1'),
(None, 'bar/bar_2'),
Expand All @@ -63,7 +65,7 @@ def test_toctree_urls_and_titles(app):
doctree = restructuredtext.parse(app, text, 'index')
assert_node(doctree, [nodes.document, nodes.compound, addnodes.toctree])
assert_node(
doctree[0][0],
extract_node(doctree, 0, 0),
entries=[
('Sphinx', 'https://www.sphinx-doc.org/'),
(None, 'https://readthedocs.org/'),
Expand All @@ -81,7 +83,7 @@ def test_toctree_glob(app):
doctree = restructuredtext.parse(app, text, 'index')
assert_node(doctree, [nodes.document, nodes.compound, addnodes.toctree])
assert_node(
doctree[0][0],
extract_node(doctree, 0, 0),
entries=[(None, 'baz'), (None, 'foo'), (None, 'quux')],
includefiles=['baz', 'foo', 'quux'],
)
Expand All @@ -93,7 +95,7 @@ def test_toctree_glob(app):
doctree = restructuredtext.parse(app, text, 'index')
assert_node(doctree, [nodes.document, nodes.compound, addnodes.toctree])
assert_node(
doctree[0][0],
extract_node(doctree, 0, 0),
entries=[(None, 'foo'), (None, 'baz'), (None, 'quux')],
includefiles=['foo', 'baz', 'quux'],
)
Expand All @@ -105,7 +107,7 @@ def test_toctree_glob(app):
doctree = restructuredtext.parse(app, text, 'index')
assert_node(doctree, [nodes.document, nodes.compound, addnodes.toctree])
assert_node(
doctree[0][0],
extract_node(doctree, 0, 0),
entries=[(None, 'baz'), (None, 'foo'), (None, 'quux'), (None, 'foo')],
includefiles=['baz', 'foo', 'quux', 'foo'],
)
Expand All @@ -119,7 +121,7 @@ def test_toctree_glob_and_url(app):
doctree = restructuredtext.parse(app, text, 'index')
assert_node(doctree, [nodes.document, nodes.compound, addnodes.toctree])
assert_node(
doctree[0][0],
extract_node(doctree, 0, 0),
entries=[(None, 'https://example.com/?q=sphinx')],
includefiles=[],
)
Expand All @@ -133,7 +135,7 @@ def test_reversed_toctree(app):
doctree = restructuredtext.parse(app, text, 'index')
assert_node(doctree, [nodes.document, nodes.compound, addnodes.toctree])
assert_node(
doctree[0][0],
extract_node(doctree, 0, 0),
entries=[(None, 'baz'), (None, 'bar/index'), (None, 'foo')],
includefiles=['baz', 'bar/index', 'foo'],
)
Expand All @@ -156,7 +158,7 @@ def test_toctree_twice(app):
doctree = restructuredtext.parse(app, text, 'index')
assert_node(doctree, [nodes.document, nodes.compound, addnodes.toctree])
assert_node(
doctree[0][0],
extract_node(doctree, 0, 0),
entries=[(None, 'foo'), (None, 'foo')],
includefiles=['foo', 'foo'],
)
Expand Down
48 changes: 34 additions & 14 deletions tests/test_domains/test_domain_c.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
from sphinx.util.cfamily import DefinitionError
from sphinx.writers.text import STDINDENT

from tests.utils import extract_node

if TYPE_CHECKING:
from io import StringIO

Expand Down Expand Up @@ -989,7 +991,7 @@ def test_cfunction_signature_with_c_maximum_signature_line_length_equal(app):
no_index=False,
)
assert_node(
doctree[1][0][0][3],
extract_node(doctree, 1, 0, 0, 3),
[
desc_parameterlist,
desc_parameter,
Expand All @@ -1001,7 +1003,9 @@ def test_cfunction_signature_with_c_maximum_signature_line_length_equal(app):
],
)
assert_node(
doctree[1][0][0][3], desc_parameterlist, multi_line_parameter_list=False
extract_node(doctree, 1, 0, 0, 3),
desc_parameterlist,
multi_line_parameter_list=False,
)


Expand Down Expand Up @@ -1050,7 +1054,7 @@ def test_cfunction_signature_with_c_maximum_signature_line_length_force_single(a
no_index=False,
)
assert_node(
doctree[1][0][0][3],
extract_node(doctree, 1, 0, 0, 3),
[
desc_parameterlist,
desc_parameter,
Expand All @@ -1062,7 +1066,9 @@ def test_cfunction_signature_with_c_maximum_signature_line_length_force_single(a
],
)
assert_node(
doctree[1][0][0][3], desc_parameterlist, multi_line_parameter_list=False
extract_node(doctree, 1, 0, 0, 3),
desc_parameterlist,
multi_line_parameter_list=False,
)


Expand Down Expand Up @@ -1111,7 +1117,7 @@ def test_cfunction_signature_with_c_maximum_signature_line_length_break(app):
no_index=False,
)
assert_node(
doctree[1][0][0][3],
extract_node(doctree, 1, 0, 0, 3),
[
desc_parameterlist,
desc_parameter,
Expand All @@ -1122,7 +1128,11 @@ def test_cfunction_signature_with_c_maximum_signature_line_length_break(app):
),
],
)
assert_node(doctree[1][0][0][3], desc_parameterlist, multi_line_parameter_list=True)
assert_node(
extract_node(doctree, 1, 0, 0, 3),
desc_parameterlist,
multi_line_parameter_list=True,
)


@pytest.mark.sphinx(
Expand Down Expand Up @@ -1170,7 +1180,7 @@ def test_cfunction_signature_with_maximum_signature_line_length_equal(app):
no_index=False,
)
assert_node(
doctree[1][0][0][3],
extract_node(doctree, 1, 0, 0, 3),
[
desc_parameterlist,
desc_parameter,
Expand All @@ -1182,7 +1192,9 @@ def test_cfunction_signature_with_maximum_signature_line_length_equal(app):
],
)
assert_node(
doctree[1][0][0][3], desc_parameterlist, multi_line_parameter_list=False
extract_node(doctree, 1, 0, 0, 3),
desc_parameterlist,
multi_line_parameter_list=False,
)


Expand Down Expand Up @@ -1231,7 +1243,7 @@ def test_cfunction_signature_with_maximum_signature_line_length_force_single(app
no_index=False,
)
assert_node(
doctree[1][0][0][3],
extract_node(doctree, 1, 0, 0, 3),
[
desc_parameterlist,
desc_parameter,
Expand All @@ -1243,7 +1255,9 @@ def test_cfunction_signature_with_maximum_signature_line_length_force_single(app
],
)
assert_node(
doctree[1][0][0][3], desc_parameterlist, multi_line_parameter_list=False
extract_node(doctree, 1, 0, 0, 3),
desc_parameterlist,
multi_line_parameter_list=False,
)


Expand Down Expand Up @@ -1292,7 +1306,7 @@ def test_cfunction_signature_with_maximum_signature_line_length_break(app):
no_index=False,
)
assert_node(
doctree[1][0][0][3],
extract_node(doctree, 1, 0, 0, 3),
[
desc_parameterlist,
desc_parameter,
Expand All @@ -1303,7 +1317,11 @@ def test_cfunction_signature_with_maximum_signature_line_length_break(app):
),
],
)
assert_node(doctree[1][0][0][3], desc_parameterlist, multi_line_parameter_list=True)
assert_node(
extract_node(doctree, 1, 0, 0, 3),
desc_parameterlist,
multi_line_parameter_list=True,
)


@pytest.mark.sphinx(
Expand Down Expand Up @@ -1350,7 +1368,7 @@ def test_c_maximum_signature_line_length_overrides_global(app):
no_index=False,
)
assert_node(
doctree[1][0][0][3],
extract_node(doctree, 1, 0, 0, 3),
[
desc_parameterlist,
desc_parameter,
Expand All @@ -1362,7 +1380,9 @@ def test_c_maximum_signature_line_length_overrides_global(app):
],
)
assert_node(
doctree[1][0][0][3], desc_parameterlist, multi_line_parameter_list=False
extract_node(doctree, 1, 0, 0, 3),
desc_parameterlist,
multi_line_parameter_list=False,
)


Expand Down
Loading
Loading