From 8f7ee1bad18db8d9594e5a92af945ec3ac799380 Mon Sep 17 00:00:00 2001 From: Adam Dangoor Date: Tue, 25 Nov 2025 05:26:11 +0000 Subject: [PATCH 1/2] Remove a bunch of mypy overrides for test_environment --- pyproject.toml | 4 +- sphinx/environment/adapters/toctree.py | 2 +- .../test_environment_toctree.py | 344 ++++++++++++++---- 3 files changed, 267 insertions(+), 83 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index bd3528ee594..136d5f51448 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -228,6 +228,8 @@ module = [ # tests/test_directives "tests.test_directives.test_directive_code", "tests.test_directives.test_directives_no_typesetting", + # tests/test_environment + "tests.test_environment.test_environment_toctree", # tests/test_ext_autodoc "tests.test_ext_autodoc.test_ext_autodoc_autoclass", # tests/test_ext_autosummary @@ -266,8 +268,6 @@ module = [ "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", # tests/test_ext_autodoc "tests.test_ext_autodoc.test_ext_autodoc", "tests.test_ext_autodoc.test_ext_autodoc_events", diff --git a/sphinx/environment/adapters/toctree.py b/sphinx/environment/adapters/toctree.py index 1435c069492..2d6a4194558 100644 --- a/sphinx/environment/adapters/toctree.py +++ b/sphinx/environment/adapters/toctree.py @@ -47,7 +47,7 @@ def note_toctree( env.toctree_includes.setdefault(docname, []).extend(include_files) -def document_toc(env: BuildEnvironment, docname: str, tags: Tags) -> Node: +def document_toc(env: BuildEnvironment, docname: str, tags: Tags) -> Element: """Get the (local) table of contents for a document. Note that this is only the sections within the document. diff --git a/tests/test_environment/test_environment_toctree.py b/tests/test_environment/test_environment_toctree.py index dcf5f8954da..829f3929678 100644 --- a/tests/test_environment/test_environment_toctree.py +++ b/tests/test_environment/test_environment_toctree.py @@ -7,7 +7,7 @@ import docutils import pytest from docutils import nodes -from docutils.nodes import bullet_list, list_item, literal, reference, title +from docutils.nodes import Element, bullet_list, list_item, literal, reference, title from sphinx import addnodes from sphinx.addnodes import compact_paragraph, only @@ -69,7 +69,7 @@ def test_process_doc(app): assert_node( toctree[0][0], - [compact_paragraph, reference, 'Welcome to Sphinx Tests’s documentation!'], + [compact_paragraph, reference, 'Welcome to Sphinx Tests\'s documentation!'], ) assert_node(toctree[0][0][0], reference, anchorname='') assert_node( @@ -129,7 +129,7 @@ def test_process_doc(app): [ compact_paragraph, reference, - 'Test for combination of ‘globaltoc.html’ and hidden toctree', + "Test for combination of 'globaltoc.html' and hidden toctree", ], ) assert_node( @@ -235,7 +235,7 @@ def test_glob(app): titlesonly=False, maxdepth=-1, numbered=0, - includefiles=includefiles, + includefiles= includefiles, entries=[ (None, 'foo'), (None, 'bar/index'), @@ -244,7 +244,7 @@ def test_glob(app): (None, 'bar/bar_3'), (None, 'baz'), (None, 'qux/index'), - ('hyperref', 'https://sphinx-doc.org/?q=sphinx'), + ('hyperref', 'https://sphinx-doc.org/?q= sphinx'), ], ) assert_node( @@ -266,7 +266,7 @@ def test_glob(app): titlesonly=False, maxdepth=-1, numbered=0, - includefiles=list(reversed(includefiles)), + includefiles= list(reversed(includefiles)), entries=[ (None, 'qux/index'), (None, 'baz'), @@ -505,26 +505,34 @@ def test_document_toc(app): ), ], ) + item0 = toctree[0] + assert isinstance(item0, Element) assert_node( - toctree[0][0], - [compact_paragraph, reference, 'Welcome to Sphinx Tests’s documentation!'], + item0[0], + [compact_paragraph, reference, 'Welcome to Sphinx Tests\'s documentation!'], ) + item01= item0[1] + assert isinstance(item01, Element) assert_node( - toctree[0][1][1], + item01[1], ( [compact_paragraph, reference, 'subsection'], [bullet_list, list_item, compact_paragraph, reference, 'subsubsection'], ), ) + item1= toctree[1] + assert isinstance(item1, Element) assert_node( - toctree[1][0], + item1[0], [ compact_paragraph, reference, - 'Test for combination of ‘globaltoc.html’ and hidden toctree', + "Test for combination of 'globaltoc.html' and hidden toctree", ], ) - assert_node(toctree[2][0], [compact_paragraph, reference, 'Indices and tables']) + item2= toctree[2] + assert isinstance(item2, Element) + assert_node(item2[0], [compact_paragraph, reference, 'Indices and tables']) @pytest.mark.sphinx('xml', testroot='toctree') @@ -564,33 +572,41 @@ def test_document_toc_only(app): ), ], ) + item0_only= toctree[0] + assert isinstance(item0_only, Element) assert_node( - toctree[0][0], - [compact_paragraph, reference, 'Welcome to Sphinx Tests’s documentation!'], + item0_only[0], + [compact_paragraph, reference, 'Welcome to Sphinx Tests\'s documentation!'], ) + item01_only= item0_only[1] + assert isinstance(item01_only, Element) assert_node( - toctree[0][1][1], + item01_only[1], ( [compact_paragraph, reference, 'Section for HTML'], [bullet_list, addnodes.toctree], ), ) assert_node( - toctree[0][1][2], + item01_only[2], ( [compact_paragraph, reference, 'subsection'], [bullet_list, list_item, compact_paragraph, reference, 'subsubsection'], ), ) + item1_only= toctree[1] + assert isinstance(item1_only, Element) assert_node( - toctree[1][0], + item1_only[0], [ compact_paragraph, reference, - 'Test for combination of ‘globaltoc.html’ and hidden toctree', + "Test for combination of 'globaltoc.html' and hidden toctree", ], ) - assert_node(toctree[2][0], [compact_paragraph, reference, 'Indices and tables']) + item2_only= toctree[2] + assert isinstance(item2_only, Element) + assert_node(item2_only[0], [compact_paragraph, reference, 'Indices and tables']) @pytest.mark.sphinx('xml', testroot='toctree') @@ -610,9 +626,11 @@ def test_document_toc_tocdepth(app): ), ], ) - assert_node(toctree[0][0], [compact_paragraph, reference, 'level 1']) + item0_tocdepth= toctree[0] + assert isinstance(item0_tocdepth, Element) + assert_node(item0_tocdepth[0], [compact_paragraph, reference, 'level 1']) assert_node( - toctree[0][1], [bullet_list, list_item, compact_paragraph, reference, 'level 2'] + item0_tocdepth[1], [bullet_list, list_item, compact_paragraph, reference, 'level 2'] ) @@ -621,8 +639,9 @@ def test_document_toc_tocdepth(app): def test_global_toctree_for_doc(app): app.build() toctree = global_toctree_for_doc( - app.env, 'index', app.builder, tags=app.tags, collapse=False + app.env, 'index', app.builder, tags= app.tags, collapse=False ) + assert toctree is not None assert_node( toctree, [ @@ -631,8 +650,10 @@ def test_global_toctree_for_doc(app): ], ) + item1= toctree[1] + assert isinstance(item1, Element) assert_node( - toctree[1], + item1, ( [list_item, ([compact_paragraph, reference, 'foo'], bullet_list)], [list_item, compact_paragraph, reference, 'bar'], @@ -641,12 +662,16 @@ def test_global_toctree_for_doc(app): list_item, compact_paragraph, reference, - 'Welcome to Sphinx Tests’s documentation!', + 'Welcome to Sphinx Tests\'s documentation!', ], ), ) + item10= item1[0] + assert isinstance(item10, Element) + item101= item10[1] + assert isinstance(item101, Element) assert_node( - toctree[1][0][1], + item101, ( [list_item, compact_paragraph, reference, 'quux'], [list_item, compact_paragraph, reference, 'foo.1'], @@ -654,30 +679,70 @@ def test_global_toctree_for_doc(app): ), ) - assert_node(toctree[1][0][0][0], reference, refuri='foo', secnumber=[1]) - assert_node(toctree[1][0][1][0][0][0], reference, refuri='quux', secnumber=[1, 1]) + item100= item10[0] + assert isinstance(item100, Element) + assert_node(item100[0], reference, refuri='foo', secnumber=[1]) + item1010 = item101[0] + assert isinstance(item1010, Element) + item1010_0 = item1010[0] + assert isinstance(item1010_0, Element) + item1010_00 = item1010_0[0] + assert isinstance(item1010_00, Element) + assert_node(item1010_00[0], reference, refuri='quux', secnumber=[1, 1]) + item1011 = item101[1] + assert isinstance(item1011, Element) + item1011_0 = item1011[0] + assert isinstance(item1011_0, Element) assert_node( - toctree[1][0][1][1][0][0], reference, refuri='foo#foo-1', secnumber=[1, 2] + item1011_0[0], reference, refuri='foo#foo-1', secnumber=[1, 2] ) + item1012 = item101[2] + assert isinstance(item1012, Element) + item1012_0 = item1012[0] + assert isinstance(item1012_0, Element) assert_node( - toctree[1][0][1][2][0][0], reference, refuri='foo#foo-2', secnumber=[1, 3] + item1012_0[0], reference, refuri='foo#foo-2', secnumber=[1, 3] ) - assert_node(toctree[1][1][0][0], reference, refuri='bar', secnumber=[2]) - assert_node(toctree[1][2][0][0], reference, refuri='https://sphinx-doc.org/') - assert_node(toctree[1][3][0][0], reference, refuri='') - + item11 = item1[1] + assert isinstance(item11, Element) + item11_0 = item11[0] + assert isinstance(item11_0, Element) + assert_node(item11_0[0], reference, refuri='bar', secnumber=[2]) + item12 = item1[2] + assert isinstance(item12, Element) + item12_0 = item12[0] + assert isinstance(item12_0, Element) + assert_node(item12_0[0], reference, refuri='https://sphinx-doc.org/') + item13 = item1[3] + assert isinstance(item13, Element) + item13_0 = item13[0] + assert isinstance(item13_0, Element) + assert_node(item13_0[0], reference, refuri='') + + item2= toctree[2] + assert isinstance(item2, Element) assert_node( - toctree[2], [bullet_list, list_item, compact_paragraph, reference, 'baz'] + item2, [bullet_list, list_item, compact_paragraph, reference, 'baz'] ) + item3= toctree[3] + assert isinstance(item3, Element) assert_node( - toctree[3], + item3, ( [list_item, compact_paragraph, reference, 'Latest reference'], [list_item, compact_paragraph, reference, 'Python'], ), ) - assert_node(toctree[3][0][0][0], reference, refuri='https://sphinx-doc.org/latest/') - assert_node(toctree[3][1][0][0], reference, refuri='https://python.org/') + item30 = item3[0] + assert isinstance(item30, Element) + item30_0 = item30[0] + assert isinstance(item30_0, Element) + assert_node(item30_0[0], reference, refuri='https://sphinx-doc.org/latest/') + item31 = item3[1] + assert isinstance(item31, Element) + item31_0 = item31[0] + assert isinstance(item31_0, Element) + assert_node(item31_0[0], reference, refuri='https://python.org/') @pytest.mark.sphinx('xml', testroot='toctree') @@ -685,8 +750,9 @@ def test_global_toctree_for_doc(app): def test_global_toctree_for_doc_collapse(app): app.build() toctree = global_toctree_for_doc( - app.env, 'index', app.builder, tags=app.tags, collapse=True + app.env, 'index', app.builder, tags= app.tags, collapse=True ) + assert toctree is not None assert_node( toctree, [ @@ -695,8 +761,10 @@ def test_global_toctree_for_doc_collapse(app): ], ) + item1_collapse= toctree[1] + assert isinstance(item1_collapse, Element) assert_node( - toctree[1], + item1_collapse, ( [list_item, compact_paragraph, reference, 'foo'], [list_item, compact_paragraph, reference, 'bar'], @@ -705,27 +773,55 @@ def test_global_toctree_for_doc_collapse(app): list_item, compact_paragraph, reference, - 'Welcome to Sphinx Tests’s documentation!', + 'Welcome to Sphinx Tests\'s documentation!', ], ), ) - assert_node(toctree[1][0][0][0], reference, refuri='foo', secnumber=[1]) - assert_node(toctree[1][1][0][0], reference, refuri='bar', secnumber=[2]) - assert_node(toctree[1][2][0][0], reference, refuri='https://sphinx-doc.org/') - assert_node(toctree[1][3][0][0], reference, refuri='') - + item10_collapse = item1_collapse[0] + assert isinstance(item10_collapse, Element) + item10_collapse_0 = item10_collapse[0] + assert isinstance(item10_collapse_0, Element) + assert_node(item10_collapse_0[0], reference, refuri='foo', secnumber=[1]) + item11_collapse = item1_collapse[1] + assert isinstance(item11_collapse, Element) + item11_collapse_0 = item11_collapse[0] + assert isinstance(item11_collapse_0, Element) + assert_node(item11_collapse_0[0], reference, refuri='bar', secnumber=[2]) + item12_collapse = item1_collapse[2] + assert isinstance(item12_collapse, Element) + item12_collapse_0 = item12_collapse[0] + assert isinstance(item12_collapse_0, Element) + assert_node(item12_collapse_0[0], reference, refuri='https://sphinx-doc.org/') + item13_collapse = item1_collapse[3] + assert isinstance(item13_collapse, Element) + item13_collapse_0 = item13_collapse[0] + assert isinstance(item13_collapse_0, Element) + assert_node(item13_collapse_0[0], reference, refuri='') + + item2_collapse= toctree[2] + assert isinstance(item2_collapse, Element) assert_node( - toctree[2], [bullet_list, list_item, compact_paragraph, reference, 'baz'] + item2_collapse, [bullet_list, list_item, compact_paragraph, reference, 'baz'] ) + item3_collapse= toctree[3] + assert isinstance(item3_collapse, Element) assert_node( - toctree[3], + item3_collapse, ( [list_item, compact_paragraph, reference, 'Latest reference'], [list_item, compact_paragraph, reference, 'Python'], ), ) - assert_node(toctree[3][0][0][0], reference, refuri='https://sphinx-doc.org/latest/') - assert_node(toctree[3][1][0][0], reference, refuri='https://python.org/') + item30_collapse = item3_collapse[0] + assert isinstance(item30_collapse, Element) + item30_collapse_0 = item30_collapse[0] + assert isinstance(item30_collapse_0, Element) + assert_node(item30_collapse_0[0], reference, refuri='https://sphinx-doc.org/latest/') + item31_collapse = item3_collapse[1] + assert isinstance(item31_collapse, Element) + item31_collapse_0 = item31_collapse[0] + assert isinstance(item31_collapse_0, Element) + assert_node(item31_collapse_0[0], reference, refuri='https://python.org/') @pytest.mark.sphinx('xml', testroot='toctree') @@ -733,8 +829,9 @@ def test_global_toctree_for_doc_collapse(app): def test_global_toctree_for_doc_maxdepth(app): app.build() toctree = global_toctree_for_doc( - app.env, 'index', app.builder, tags=app.tags, collapse=False, maxdepth=3 + app.env, 'index', app.builder, tags= app.tags, collapse=False, maxdepth=3 ) + assert toctree is not None assert_node( toctree, [ @@ -748,8 +845,10 @@ def test_global_toctree_for_doc_maxdepth(app): ], ) + item1_maxdepth= toctree[1] + assert isinstance(item1_maxdepth, Element) assert_node( - toctree[1], + item1_maxdepth, ( [ list_item, @@ -764,12 +863,16 @@ def test_global_toctree_for_doc_maxdepth(app): list_item, compact_paragraph, reference, - 'Welcome to Sphinx Tests’s documentation!', + 'Welcome to Sphinx Tests\'s documentation!', ], ), ) + item10_maxdepth= item1_maxdepth[0] + assert isinstance(item10_maxdepth, Element) + item101_maxdepth= item10_maxdepth[1] + assert isinstance(item101_maxdepth, Element) assert_node( - toctree[1][0][1], + item101_maxdepth, ( [list_item, compact_paragraph, reference, 'quux'], [ @@ -782,41 +885,89 @@ def test_global_toctree_for_doc_maxdepth(app): [list_item, compact_paragraph, reference, 'foo.2'], ), ) + item1011_maxdepth= item101_maxdepth[1] + assert isinstance(item1011_maxdepth, Element) + item10111_maxdepth= item1011_maxdepth[1] + assert isinstance(item10111_maxdepth, Element) assert_node( - toctree[1][0][1][1][1], + item10111_maxdepth, [bullet_list, list_item, compact_paragraph, reference, 'foo.1-1'], ) - assert_node(toctree[1][0][0][0], reference, refuri='foo', secnumber=[1]) - assert_node(toctree[1][0][1][0][0][0], reference, refuri='quux', secnumber=[1, 1]) + item100_maxdepth= item10_maxdepth[0] + assert isinstance(item100_maxdepth, Element) + assert_node(item100_maxdepth[0], reference, refuri='foo', secnumber=[1]) + item1010_maxdepth = item101_maxdepth[0] + assert isinstance(item1010_maxdepth, Element) + item1010_maxdepth_0 = item1010_maxdepth[0] + assert isinstance(item1010_maxdepth_0, Element) + item1010_maxdepth_00 = item1010_maxdepth_0[0] + assert isinstance(item1010_maxdepth_00, Element) + assert_node(item1010_maxdepth_00[0], reference, refuri='quux', secnumber=[1, 1]) + item10110_maxdepth = item1011_maxdepth[0] + assert isinstance(item10110_maxdepth, Element) assert_node( - toctree[1][0][1][1][0][0], reference, refuri='foo#foo-1', secnumber=[1, 2] + item10110_maxdepth[0], reference, refuri='foo#foo-1', secnumber=[1, 2] ) + item101110_maxdepth = item10111_maxdepth[0] + assert isinstance(item101110_maxdepth, Element) + item101110_maxdepth_0 = item101110_maxdepth[0] + assert isinstance(item101110_maxdepth_0, Element) + item101110_maxdepth_00 = item101110_maxdepth_0[0] + assert isinstance(item101110_maxdepth_00, Element) assert_node( - toctree[1][0][1][1][1][0][0][0], + item101110_maxdepth_00[0], reference, refuri='foo#foo-1-1', secnumber=[1, 2, 1], ) + item1012_maxdepth = item101_maxdepth[2] + assert isinstance(item1012_maxdepth, Element) + item1012_maxdepth_0 = item1012_maxdepth[0] + assert isinstance(item1012_maxdepth_0, Element) assert_node( - toctree[1][0][1][2][0][0], reference, refuri='foo#foo-2', secnumber=[1, 3] + item1012_maxdepth_0[0], reference, refuri='foo#foo-2', secnumber=[1, 3] ) - assert_node(toctree[1][1][0][0], reference, refuri='bar', secnumber=[2]) - assert_node(toctree[1][2][0][0], reference, refuri='https://sphinx-doc.org/') - assert_node(toctree[1][3][0][0], reference, refuri='') - + item11_maxdepth = item1_maxdepth[1] + assert isinstance(item11_maxdepth, Element) + item11_maxdepth_0 = item11_maxdepth[0] + assert isinstance(item11_maxdepth_0, Element) + assert_node(item11_maxdepth_0[0], reference, refuri='bar', secnumber=[2]) + item12_maxdepth = item1_maxdepth[2] + assert isinstance(item12_maxdepth, Element) + item12_maxdepth_0 = item12_maxdepth[0] + assert isinstance(item12_maxdepth_0, Element) + assert_node(item12_maxdepth_0[0], reference, refuri='https://sphinx-doc.org/') + item13_maxdepth = item1_maxdepth[3] + assert isinstance(item13_maxdepth, Element) + item13_maxdepth_0 = item13_maxdepth[0] + assert isinstance(item13_maxdepth_0, Element) + assert_node(item13_maxdepth_0[0], reference, refuri='') + + item2_maxdepth= toctree[2] + assert isinstance(item2_maxdepth, Element) assert_node( - toctree[2], [bullet_list, list_item, compact_paragraph, reference, 'baz'] + item2_maxdepth, [bullet_list, list_item, compact_paragraph, reference, 'baz'] ) + item3_maxdepth = toctree[3] + assert isinstance(item3_maxdepth, Element) assert_node( - toctree[3], + item3_maxdepth, ( [list_item, compact_paragraph, reference, 'Latest reference'], [list_item, compact_paragraph, reference, 'Python'], ), ) - assert_node(toctree[3][0][0][0], reference, refuri='https://sphinx-doc.org/latest/') - assert_node(toctree[3][1][0][0], reference, refuri='https://python.org/') + item30_maxdepth = item3_maxdepth[0] + assert isinstance(item30_maxdepth, Element) + item30_maxdepth_0 = item30_maxdepth[0] + assert isinstance(item30_maxdepth_0, Element) + assert_node(item30_maxdepth_0[0], reference, refuri='https://sphinx-doc.org/latest/') + item31_maxdepth = item3_maxdepth[1] + assert isinstance(item31_maxdepth, Element) + item31_maxdepth_0 = item31_maxdepth[0] + assert isinstance(item31_maxdepth_0, Element) + assert_node(item31_maxdepth_0[0], reference, refuri='https://python.org/') @pytest.mark.sphinx('xml', testroot='toctree') @@ -827,10 +978,11 @@ def test_global_toctree_for_doc_includehidden(app): app.env, 'index', app.builder, - tags=app.tags, + tags= app.tags, collapse=False, includehidden=False, ) + assert toctree is not None assert_node( toctree, [ @@ -843,8 +995,10 @@ def test_global_toctree_for_doc_includehidden(app): ], ) + item1_includehidden= toctree[1] + assert isinstance(item1_includehidden, Element) assert_node( - toctree[1], + item1_includehidden, ( [ list_item, @@ -859,12 +1013,16 @@ def test_global_toctree_for_doc_includehidden(app): list_item, compact_paragraph, reference, - 'Welcome to Sphinx Tests’s documentation!', + 'Welcome to Sphinx Tests\'s documentation!', ], ), ) + item10_includehidden= item1_includehidden[0] + assert isinstance(item10_includehidden, Element) + item101_includehidden= item10_includehidden[1] + assert isinstance(item101_includehidden, Element) assert_node( - toctree[1][0][1], + item101_includehidden, ( [list_item, compact_paragraph, reference, 'quux'], [list_item, compact_paragraph, reference, 'foo.1'], @@ -872,19 +1030,45 @@ def test_global_toctree_for_doc_includehidden(app): ), ) - assert_node(toctree[1][0][0][0], reference, refuri='foo', secnumber=[1]) - assert_node(toctree[1][0][1][0][0][0], reference, refuri='quux', secnumber=[1, 1]) + item100_includehidden = item10_includehidden[0] + assert isinstance(item100_includehidden, Element) + assert_node(item100_includehidden[0], reference, refuri='foo', secnumber=[1]) + item1010_includehidden = item101_includehidden[0] + assert isinstance(item1010_includehidden, Element) + item1010_includehidden_0 = item1010_includehidden[0] + assert isinstance(item1010_includehidden_0, Element) + item1010_includehidden_00 = item1010_includehidden_0[0] + assert isinstance(item1010_includehidden_00, Element) + assert_node(item1010_includehidden_00[0], reference, refuri='quux', secnumber=[1, 1]) + item1011_includehidden = item101_includehidden[1] + assert isinstance(item1011_includehidden, Element) + item1011_includehidden_0 = item1011_includehidden[0] + assert isinstance(item1011_includehidden_0, Element) assert_node( - toctree[1][0][1][1][0][0], reference, refuri='foo#foo-1', secnumber=[1, 2] + item1011_includehidden_0[0], reference, refuri='foo#foo-1', secnumber=[1, 2] ) + item1012_includehidden = item101_includehidden[2] + assert isinstance(item1012_includehidden, Element) + item1012_includehidden_0 = item1012_includehidden[0] + assert isinstance(item1012_includehidden_0, Element) assert_node( - toctree[1][0][1][2][0][0], reference, refuri='foo#foo-2', secnumber=[1, 3] + item1012_includehidden_0[0], reference, refuri='foo#foo-2', secnumber=[1, 3] ) - assert_node(toctree[1][1][0][0], reference, refuri='bar', secnumber=[2]) - assert_node(toctree[1][2][0][0], reference, refuri='https://sphinx-doc.org/') - + item11_includehidden = item1_includehidden[1] + assert isinstance(item11_includehidden, Element) + item11_includehidden_0 = item11_includehidden[0] + assert isinstance(item11_includehidden_0, Element) + assert_node(item11_includehidden_0[0], reference, refuri='bar', secnumber=[2]) + item12_includehidden = item1_includehidden[2] + assert isinstance(item12_includehidden, Element) + item12_includehidden_0 = item12_includehidden[0] + assert isinstance(item12_includehidden_0, Element) + assert_node(item12_includehidden_0[0], reference, refuri='https://sphinx-doc.org/') + + item2_includehidden= toctree[2] + assert isinstance(item2_includehidden, Element) assert_node( - toctree[2], [bullet_list, list_item, compact_paragraph, reference, 'baz'] + item2_includehidden, [bullet_list, list_item, compact_paragraph, reference, 'baz'] ) @@ -965,7 +1149,7 @@ def test_toctree_copy_only(): # regression test for https://github.com/sphinx-doc/sphinx/issues/13022 # ensure ``_toctree_copy()`` properly filters out ``only`` nodes, # including nested nodes. - node = nodes.literal('lobster!', 'lobster!') + node: Element = nodes.literal('lobster!', 'lobster!') node = nodes.reference('', '', node, anchorname='', internal=True, refuri='index') node = addnodes.only('', node, expr='lobster') node = addnodes.compact_paragraph('', '', node, skip_section_number=True) From b0005d4043bda467fb42289641d789639c3f7943 Mon Sep 17 00:00:00 2001 From: Adam Dangoor Date: Tue, 25 Nov 2025 05:35:09 +0000 Subject: [PATCH 2/2] No more mypy overrides in tests/test_environment --- pyproject.toml | 2 - .../test_environment_toctree.py | 238 +++++++++++------- 2 files changed, 142 insertions(+), 98 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 136d5f51448..6035a07db0d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -228,8 +228,6 @@ module = [ # tests/test_directives "tests.test_directives.test_directive_code", "tests.test_directives.test_directives_no_typesetting", - # tests/test_environment - "tests.test_environment.test_environment_toctree", # tests/test_ext_autodoc "tests.test_ext_autodoc.test_ext_autodoc_autoclass", # tests/test_ext_autosummary diff --git a/tests/test_environment/test_environment_toctree.py b/tests/test_environment/test_environment_toctree.py index 829f3929678..362695a2064 100644 --- a/tests/test_environment/test_environment_toctree.py +++ b/tests/test_environment/test_environment_toctree.py @@ -26,7 +26,7 @@ @pytest.mark.sphinx('xml', testroot='toctree') @pytest.mark.test_params(shared_result='test_environment_toctree_basic') -def test_process_doc(app): +def test_process_doc(app: SphinxTestApp) -> None: app.build() # tocs toctree = app.env.tocs['index'] @@ -67,13 +67,20 @@ def test_process_doc(app): ], ) + toctree_0 = toctree[0] + assert isinstance(toctree_0, Element) + toctree_0_0 = toctree_0[0] + assert isinstance(toctree_0_0, Element) assert_node( - toctree[0][0], - [compact_paragraph, reference, 'Welcome to Sphinx Tests\'s documentation!'], + toctree_0_0, + [compact_paragraph, reference, "Welcome to Sphinx Tests's documentation!"], ) - assert_node(toctree[0][0][0], reference, anchorname='') + assert_node(toctree_0_0[0], reference, anchorname='') + + toctree_0_1 = toctree_0[1] + assert isinstance(toctree_0_1, Element) assert_node( - toctree[0][1][0], + toctree_0_1[0], addnodes.toctree, caption='Table of Contents', glob=False, @@ -91,9 +98,11 @@ def test_process_doc(app): ) # only branch - assert_node(toctree[0][1][1], addnodes.only, expr='html') + toctree_0_1_1 = toctree_0_1[1] + assert isinstance(toctree_0_1_1, Element) + assert_node(toctree_0_1_1, addnodes.only, expr='html') assert_node( - toctree[0][1][1], + toctree_0_1_1, [ only, list_item, @@ -103,9 +112,15 @@ def test_process_doc(app): ), ], ) - assert_node(toctree[0][1][1][0][0][0], reference, anchorname='#section-for-html') + toctree_0_1_1_0 = toctree_0_1_1[0] + assert isinstance(toctree_0_1_1_0, Element) + toctree_0_1_1_0_0 = toctree_0_1_1_0[0] + assert isinstance(toctree_0_1_1_0_0, Element) + assert_node(toctree_0_1_1_0_0[0], reference, anchorname='#section-for-html') + toctree_0_1_1_0_1 = toctree_0_1_1_0[1] + assert isinstance(toctree_0_1_1_0_1, Element) assert_node( - toctree[0][1][1][0][1][0], + toctree_0_1_1_0_1[0], addnodes.toctree, caption=None, glob=False, @@ -117,15 +132,19 @@ def test_process_doc(app): numbered=0, ) assert_node( - toctree[0][1][2], + toctree_0_1[2], ( [compact_paragraph, reference, 'subsection'], [bullet_list, list_item, compact_paragraph, reference, 'subsubsection'], ), ) + toctree_1 = toctree[1] + assert isinstance(toctree_1, Element) + toctree_1_0 = toctree_1[0] + assert isinstance(toctree_1_0, Element) assert_node( - toctree[1][0], + toctree_1_0, [ compact_paragraph, reference, @@ -133,12 +152,14 @@ def test_process_doc(app): ], ) assert_node( - toctree[1][0][0], + toctree_1_0[0], reference, anchorname='#test-for-combination-of-globaltoc-html-and-hidden-toctree', ) + toctree_1_1 = toctree_1[1] + assert isinstance(toctree_1_1, Element) assert_node( - toctree[1][1][0], + toctree_1_1[0], addnodes.toctree, caption=None, entries=[], @@ -149,7 +170,7 @@ def test_process_doc(app): numbered=0, ) assert_node( - toctree[1][1][1], + toctree_1_1[1], addnodes.toctree, caption=None, glob=False, @@ -163,7 +184,9 @@ def test_process_doc(app): ], ) - assert_node(toctree[2][0], [compact_paragraph, reference, 'Indices and tables']) + toctree_2 = toctree[2] + assert isinstance(toctree_2, Element) + assert_node(toctree_2[0], [compact_paragraph, reference, 'Indices and tables']) # other collections assert app.env.toc_num_entries['index'] == 6 @@ -182,7 +205,7 @@ def test_process_doc(app): @pytest.mark.sphinx('dummy', testroot='toctree-glob') -def test_glob(app): +def test_glob(app: SphinxTestApp) -> None: includefiles = [ 'foo', 'bar/index', @@ -215,9 +238,16 @@ def test_glob(app): ], ) - assert_node(toctree[0][0], [compact_paragraph, reference, 'test-toctree-glob']) + toctree_0 = toctree[0] + assert isinstance(toctree_0, Element) + assert_node(toctree_0[0], [compact_paragraph, reference, 'test-toctree-glob']) + + toctree_0_1 = toctree_0[1] + assert isinstance(toctree_0_1, Element) + toctree_0_1_0 = toctree_0_1[0] + assert isinstance(toctree_0_1_0, Element) assert_node( - toctree[0][1][0], + toctree_0_1_0, [ list_item, ( @@ -226,8 +256,10 @@ def test_glob(app): ), ], ) + toctree_0_1_0_1 = toctree_0_1_0[1] + assert isinstance(toctree_0_1_0_1, Element) assert_node( - toctree[0][1][0][1][0], + toctree_0_1_0_1[0], addnodes.toctree, caption=None, glob=True, @@ -235,7 +267,7 @@ def test_glob(app): titlesonly=False, maxdepth=-1, numbered=0, - includefiles= includefiles, + includefiles=includefiles, entries=[ (None, 'foo'), (None, 'bar/index'), @@ -247,8 +279,10 @@ def test_glob(app): ('hyperref', 'https://sphinx-doc.org/?q= sphinx'), ], ) + toctree_0_1_1 = toctree_0_1[1] + assert isinstance(toctree_0_1_1, Element) assert_node( - toctree[0][1][1], + toctree_0_1_1, [ list_item, ( @@ -257,8 +291,10 @@ def test_glob(app): ), ], ) + toctree_0_1_1_1 = toctree_0_1_1[1] + assert isinstance(toctree_0_1_1_1, Element) assert_node( - toctree[0][1][1][1][0], + toctree_0_1_1_1[0], addnodes.toctree, caption=None, glob=True, @@ -266,7 +302,7 @@ def test_glob(app): titlesonly=False, maxdepth=-1, numbered=0, - includefiles= list(reversed(includefiles)), + includefiles=list(reversed(includefiles)), entries=[ (None, 'qux/index'), (None, 'baz'), @@ -290,7 +326,7 @@ def test_glob(app): @pytest.mark.sphinx('dummy', testroot='toctree-domain-objects') -def test_domain_objects(app): +def test_domain_objects(app: SphinxTestApp) -> None: app.build() assert app.env.toc_num_entries['index'] == 0 @@ -336,15 +372,23 @@ def test_domain_objects(app): ], ) - assert_node(toctree[0][0], [compact_paragraph, reference, 'test-domain-objects']) + toctree_0 = toctree[0] + assert isinstance(toctree_0, Element) + assert_node(toctree_0[0], [compact_paragraph, reference, 'test-domain-objects']) + toctree_0_1 = toctree_0[1] + assert isinstance(toctree_0_1, Element) assert_node( - toctree[0][1][0], + toctree_0_1[0], [list_item, ([compact_paragraph, reference, literal, 'world()'])], ) + toctree_0_1_1 = toctree_0_1[1] + assert isinstance(toctree_0_1_1, Element) + toctree_0_1_1_1 = toctree_0_1_1[1] + assert isinstance(toctree_0_1_1_1, Element) assert_node( - toctree[0][1][1][1][3], + toctree_0_1_1_1[3], [ list_item, ([compact_paragraph, reference, literal, 'HelloWorldPrinter.print()']), @@ -472,7 +516,7 @@ def test_domain_objects_document_scoping(app: SphinxTestApp) -> None: @pytest.mark.sphinx('xml', testroot='toctree') @pytest.mark.test_params(shared_result='test_environment_toctree_basic') -def test_document_toc(app): +def test_document_toc(app: SphinxTestApp) -> None: app.build() toctree = document_toc(app.env, 'index', app.tags) @@ -509,9 +553,9 @@ def test_document_toc(app): assert isinstance(item0, Element) assert_node( item0[0], - [compact_paragraph, reference, 'Welcome to Sphinx Tests\'s documentation!'], + [compact_paragraph, reference, "Welcome to Sphinx Tests's documentation!"], ) - item01= item0[1] + item01 = item0[1] assert isinstance(item01, Element) assert_node( item01[1], @@ -520,7 +564,7 @@ def test_document_toc(app): [bullet_list, list_item, compact_paragraph, reference, 'subsubsection'], ), ) - item1= toctree[1] + item1 = toctree[1] assert isinstance(item1, Element) assert_node( item1[0], @@ -530,14 +574,14 @@ def test_document_toc(app): "Test for combination of 'globaltoc.html' and hidden toctree", ], ) - item2= toctree[2] + item2 = toctree[2] assert isinstance(item2, Element) assert_node(item2[0], [compact_paragraph, reference, 'Indices and tables']) @pytest.mark.sphinx('xml', testroot='toctree') @pytest.mark.test_params(shared_result='test_environment_toctree_basic') -def test_document_toc_only(app): +def test_document_toc_only(app: SphinxTestApp) -> None: app.build() StandaloneHTMLBuilder(app, app.env) # adds format/builder tags toctree = document_toc(app.env, 'index', app.tags) @@ -572,13 +616,13 @@ def test_document_toc_only(app): ), ], ) - item0_only= toctree[0] + item0_only = toctree[0] assert isinstance(item0_only, Element) assert_node( item0_only[0], - [compact_paragraph, reference, 'Welcome to Sphinx Tests\'s documentation!'], + [compact_paragraph, reference, "Welcome to Sphinx Tests's documentation!"], ) - item01_only= item0_only[1] + item01_only = item0_only[1] assert isinstance(item01_only, Element) assert_node( item01_only[1], @@ -594,7 +638,7 @@ def test_document_toc_only(app): [bullet_list, list_item, compact_paragraph, reference, 'subsubsection'], ), ) - item1_only= toctree[1] + item1_only = toctree[1] assert isinstance(item1_only, Element) assert_node( item1_only[0], @@ -604,14 +648,14 @@ def test_document_toc_only(app): "Test for combination of 'globaltoc.html' and hidden toctree", ], ) - item2_only= toctree[2] + item2_only = toctree[2] assert isinstance(item2_only, Element) assert_node(item2_only[0], [compact_paragraph, reference, 'Indices and tables']) @pytest.mark.sphinx('xml', testroot='toctree') @pytest.mark.test_params(shared_result='test_environment_toctree_basic') -def test_document_toc_tocdepth(app): +def test_document_toc_tocdepth(app: SphinxTestApp) -> None: app.build() toctree = document_toc(app.env, 'tocdepth', app.tags) @@ -626,20 +670,21 @@ def test_document_toc_tocdepth(app): ), ], ) - item0_tocdepth= toctree[0] + item0_tocdepth = toctree[0] assert isinstance(item0_tocdepth, Element) assert_node(item0_tocdepth[0], [compact_paragraph, reference, 'level 1']) assert_node( - item0_tocdepth[1], [bullet_list, list_item, compact_paragraph, reference, 'level 2'] + item0_tocdepth[1], + [bullet_list, list_item, compact_paragraph, reference, 'level 2'], ) @pytest.mark.sphinx('xml', testroot='toctree') @pytest.mark.test_params(shared_result='test_environment_toctree_basic') -def test_global_toctree_for_doc(app): +def test_global_toctree_for_doc(app: SphinxTestApp) -> None: app.build() toctree = global_toctree_for_doc( - app.env, 'index', app.builder, tags= app.tags, collapse=False + app.env, 'index', app.builder, tags=app.tags, collapse=False ) assert toctree is not None assert_node( @@ -650,7 +695,7 @@ def test_global_toctree_for_doc(app): ], ) - item1= toctree[1] + item1 = toctree[1] assert isinstance(item1, Element) assert_node( item1, @@ -662,13 +707,13 @@ def test_global_toctree_for_doc(app): list_item, compact_paragraph, reference, - 'Welcome to Sphinx Tests\'s documentation!', + "Welcome to Sphinx Tests's documentation!", ], ), ) - item10= item1[0] + item10 = item1[0] assert isinstance(item10, Element) - item101= item10[1] + item101 = item10[1] assert isinstance(item101, Element) assert_node( item101, @@ -679,7 +724,7 @@ def test_global_toctree_for_doc(app): ), ) - item100= item10[0] + item100 = item10[0] assert isinstance(item100, Element) assert_node(item100[0], reference, refuri='foo', secnumber=[1]) item1010 = item101[0] @@ -693,16 +738,12 @@ def test_global_toctree_for_doc(app): assert isinstance(item1011, Element) item1011_0 = item1011[0] assert isinstance(item1011_0, Element) - assert_node( - item1011_0[0], reference, refuri='foo#foo-1', secnumber=[1, 2] - ) + assert_node(item1011_0[0], reference, refuri='foo#foo-1', secnumber=[1, 2]) item1012 = item101[2] assert isinstance(item1012, Element) item1012_0 = item1012[0] assert isinstance(item1012_0, Element) - assert_node( - item1012_0[0], reference, refuri='foo#foo-2', secnumber=[1, 3] - ) + assert_node(item1012_0[0], reference, refuri='foo#foo-2', secnumber=[1, 3]) item11 = item1[1] assert isinstance(item11, Element) item11_0 = item11[0] @@ -719,12 +760,10 @@ def test_global_toctree_for_doc(app): assert isinstance(item13_0, Element) assert_node(item13_0[0], reference, refuri='') - item2= toctree[2] + item2 = toctree[2] assert isinstance(item2, Element) - assert_node( - item2, [bullet_list, list_item, compact_paragraph, reference, 'baz'] - ) - item3= toctree[3] + assert_node(item2, [bullet_list, list_item, compact_paragraph, reference, 'baz']) + item3 = toctree[3] assert isinstance(item3, Element) assert_node( item3, @@ -747,10 +786,10 @@ def test_global_toctree_for_doc(app): @pytest.mark.sphinx('xml', testroot='toctree') @pytest.mark.test_params(shared_result='test_environment_toctree_basic') -def test_global_toctree_for_doc_collapse(app): +def test_global_toctree_for_doc_collapse(app: SphinxTestApp) -> None: app.build() toctree = global_toctree_for_doc( - app.env, 'index', app.builder, tags= app.tags, collapse=True + app.env, 'index', app.builder, tags=app.tags, collapse=True ) assert toctree is not None assert_node( @@ -761,7 +800,7 @@ def test_global_toctree_for_doc_collapse(app): ], ) - item1_collapse= toctree[1] + item1_collapse = toctree[1] assert isinstance(item1_collapse, Element) assert_node( item1_collapse, @@ -773,7 +812,7 @@ def test_global_toctree_for_doc_collapse(app): list_item, compact_paragraph, reference, - 'Welcome to Sphinx Tests\'s documentation!', + "Welcome to Sphinx Tests's documentation!", ], ), ) @@ -798,12 +837,12 @@ def test_global_toctree_for_doc_collapse(app): assert isinstance(item13_collapse_0, Element) assert_node(item13_collapse_0[0], reference, refuri='') - item2_collapse= toctree[2] + item2_collapse = toctree[2] assert isinstance(item2_collapse, Element) assert_node( item2_collapse, [bullet_list, list_item, compact_paragraph, reference, 'baz'] ) - item3_collapse= toctree[3] + item3_collapse = toctree[3] assert isinstance(item3_collapse, Element) assert_node( item3_collapse, @@ -816,7 +855,9 @@ def test_global_toctree_for_doc_collapse(app): assert isinstance(item30_collapse, Element) item30_collapse_0 = item30_collapse[0] assert isinstance(item30_collapse_0, Element) - assert_node(item30_collapse_0[0], reference, refuri='https://sphinx-doc.org/latest/') + assert_node( + item30_collapse_0[0], reference, refuri='https://sphinx-doc.org/latest/' + ) item31_collapse = item3_collapse[1] assert isinstance(item31_collapse, Element) item31_collapse_0 = item31_collapse[0] @@ -826,10 +867,10 @@ def test_global_toctree_for_doc_collapse(app): @pytest.mark.sphinx('xml', testroot='toctree') @pytest.mark.test_params(shared_result='test_environment_toctree_basic') -def test_global_toctree_for_doc_maxdepth(app): +def test_global_toctree_for_doc_maxdepth(app: SphinxTestApp) -> None: app.build() toctree = global_toctree_for_doc( - app.env, 'index', app.builder, tags= app.tags, collapse=False, maxdepth=3 + app.env, 'index', app.builder, tags=app.tags, collapse=False, maxdepth=3 ) assert toctree is not None assert_node( @@ -845,7 +886,7 @@ def test_global_toctree_for_doc_maxdepth(app): ], ) - item1_maxdepth= toctree[1] + item1_maxdepth = toctree[1] assert isinstance(item1_maxdepth, Element) assert_node( item1_maxdepth, @@ -863,13 +904,13 @@ def test_global_toctree_for_doc_maxdepth(app): list_item, compact_paragraph, reference, - 'Welcome to Sphinx Tests\'s documentation!', + "Welcome to Sphinx Tests's documentation!", ], ), ) - item10_maxdepth= item1_maxdepth[0] + item10_maxdepth = item1_maxdepth[0] assert isinstance(item10_maxdepth, Element) - item101_maxdepth= item10_maxdepth[1] + item101_maxdepth = item10_maxdepth[1] assert isinstance(item101_maxdepth, Element) assert_node( item101_maxdepth, @@ -885,16 +926,16 @@ def test_global_toctree_for_doc_maxdepth(app): [list_item, compact_paragraph, reference, 'foo.2'], ), ) - item1011_maxdepth= item101_maxdepth[1] + item1011_maxdepth = item101_maxdepth[1] assert isinstance(item1011_maxdepth, Element) - item10111_maxdepth= item1011_maxdepth[1] + item10111_maxdepth = item1011_maxdepth[1] assert isinstance(item10111_maxdepth, Element) assert_node( item10111_maxdepth, [bullet_list, list_item, compact_paragraph, reference, 'foo.1-1'], ) - item100_maxdepth= item10_maxdepth[0] + item100_maxdepth = item10_maxdepth[0] assert isinstance(item100_maxdepth, Element) assert_node(item100_maxdepth[0], reference, refuri='foo', secnumber=[1]) item1010_maxdepth = item101_maxdepth[0] @@ -906,9 +947,7 @@ def test_global_toctree_for_doc_maxdepth(app): assert_node(item1010_maxdepth_00[0], reference, refuri='quux', secnumber=[1, 1]) item10110_maxdepth = item1011_maxdepth[0] assert isinstance(item10110_maxdepth, Element) - assert_node( - item10110_maxdepth[0], reference, refuri='foo#foo-1', secnumber=[1, 2] - ) + assert_node(item10110_maxdepth[0], reference, refuri='foo#foo-1', secnumber=[1, 2]) item101110_maxdepth = item10111_maxdepth[0] assert isinstance(item101110_maxdepth, Element) item101110_maxdepth_0 = item101110_maxdepth[0] @@ -925,9 +964,7 @@ def test_global_toctree_for_doc_maxdepth(app): assert isinstance(item1012_maxdepth, Element) item1012_maxdepth_0 = item1012_maxdepth[0] assert isinstance(item1012_maxdepth_0, Element) - assert_node( - item1012_maxdepth_0[0], reference, refuri='foo#foo-2', secnumber=[1, 3] - ) + assert_node(item1012_maxdepth_0[0], reference, refuri='foo#foo-2', secnumber=[1, 3]) item11_maxdepth = item1_maxdepth[1] assert isinstance(item11_maxdepth, Element) item11_maxdepth_0 = item11_maxdepth[0] @@ -944,7 +981,7 @@ def test_global_toctree_for_doc_maxdepth(app): assert isinstance(item13_maxdepth_0, Element) assert_node(item13_maxdepth_0[0], reference, refuri='') - item2_maxdepth= toctree[2] + item2_maxdepth = toctree[2] assert isinstance(item2_maxdepth, Element) assert_node( item2_maxdepth, [bullet_list, list_item, compact_paragraph, reference, 'baz'] @@ -962,7 +999,9 @@ def test_global_toctree_for_doc_maxdepth(app): assert isinstance(item30_maxdepth, Element) item30_maxdepth_0 = item30_maxdepth[0] assert isinstance(item30_maxdepth_0, Element) - assert_node(item30_maxdepth_0[0], reference, refuri='https://sphinx-doc.org/latest/') + assert_node( + item30_maxdepth_0[0], reference, refuri='https://sphinx-doc.org/latest/' + ) item31_maxdepth = item3_maxdepth[1] assert isinstance(item31_maxdepth, Element) item31_maxdepth_0 = item31_maxdepth[0] @@ -972,13 +1011,13 @@ def test_global_toctree_for_doc_maxdepth(app): @pytest.mark.sphinx('xml', testroot='toctree') @pytest.mark.test_params(shared_result='test_environment_toctree_basic') -def test_global_toctree_for_doc_includehidden(app): +def test_global_toctree_for_doc_includehidden(app: SphinxTestApp) -> None: app.build() toctree = global_toctree_for_doc( app.env, 'index', app.builder, - tags= app.tags, + tags=app.tags, collapse=False, includehidden=False, ) @@ -995,7 +1034,7 @@ def test_global_toctree_for_doc_includehidden(app): ], ) - item1_includehidden= toctree[1] + item1_includehidden = toctree[1] assert isinstance(item1_includehidden, Element) assert_node( item1_includehidden, @@ -1013,13 +1052,13 @@ def test_global_toctree_for_doc_includehidden(app): list_item, compact_paragraph, reference, - 'Welcome to Sphinx Tests\'s documentation!', + "Welcome to Sphinx Tests's documentation!", ], ), ) - item10_includehidden= item1_includehidden[0] + item10_includehidden = item1_includehidden[0] assert isinstance(item10_includehidden, Element) - item101_includehidden= item10_includehidden[1] + item101_includehidden = item10_includehidden[1] assert isinstance(item101_includehidden, Element) assert_node( item101_includehidden, @@ -1039,7 +1078,9 @@ def test_global_toctree_for_doc_includehidden(app): assert isinstance(item1010_includehidden_0, Element) item1010_includehidden_00 = item1010_includehidden_0[0] assert isinstance(item1010_includehidden_00, Element) - assert_node(item1010_includehidden_00[0], reference, refuri='quux', secnumber=[1, 1]) + assert_node( + item1010_includehidden_00[0], reference, refuri='quux', secnumber=[1, 1] + ) item1011_includehidden = item101_includehidden[1] assert isinstance(item1011_includehidden, Element) item1011_includehidden_0 = item1011_includehidden[0] @@ -1065,15 +1106,16 @@ def test_global_toctree_for_doc_includehidden(app): assert isinstance(item12_includehidden_0, Element) assert_node(item12_includehidden_0[0], reference, refuri='https://sphinx-doc.org/') - item2_includehidden= toctree[2] + item2_includehidden = toctree[2] assert isinstance(item2_includehidden, Element) assert_node( - item2_includehidden, [bullet_list, list_item, compact_paragraph, reference, 'baz'] + item2_includehidden, + [bullet_list, list_item, compact_paragraph, reference, 'baz'], ) @pytest.mark.sphinx('xml', testroot='toctree-index') -def test_toctree_index(app): +def test_toctree_index(app: SphinxTestApp) -> None: app.build() toctree = app.env.tocs['index'] assert_node( @@ -1095,8 +1137,12 @@ def test_toctree_index(app): ]), ], ) + toctree_0 = toctree[0] + assert isinstance(toctree_0, Element) + toctree_0_1 = toctree_0[1] + assert isinstance(toctree_0_1, Element) assert_node( - toctree[0][1][1], + toctree_0_1[1], addnodes.toctree, caption='Indices', glob=False, @@ -1109,7 +1155,7 @@ def test_toctree_index(app): @pytest.mark.sphinx('dummy', testroot='toctree-only') -def test_toctree_only(app): +def test_toctree_only(app: SphinxTestApp) -> None: # regression test for https://github.com/sphinx-doc/sphinx/issues/13022 # we mainly care that this doesn't fail @@ -1145,7 +1191,7 @@ def test_toctree_only(app): assert toc.pformat(' ') == expected_pformat -def test_toctree_copy_only(): +def test_toctree_copy_only() -> None: # regression test for https://github.com/sphinx-doc/sphinx/issues/13022 # ensure ``_toctree_copy()`` properly filters out ``only`` nodes, # including nested nodes.