From 1d58dccc86ad3b834faf4d6156cd1f9bc8945467 Mon Sep 17 00:00:00 2001 From: Jarrad Whitaker Date: Fri, 7 Jan 2022 22:11:54 +1100 Subject: [PATCH 1/2] #10058 - add failing test --- .../conf.py | 3 ++ .../index.rst | 7 +++ tests/test_ext_autosummary.py | 44 +++++++++++++++++++ 3 files changed, 54 insertions(+) diff --git a/tests/roots/test-ext-autosummary-imported_members/conf.py b/tests/roots/test-ext-autosummary-imported_members/conf.py index 77af668ab99..454aa1b14b3 100644 --- a/tests/roots/test-ext-autosummary-imported_members/conf.py +++ b/tests/roots/test-ext-autosummary-imported_members/conf.py @@ -6,3 +6,6 @@ extensions = ['sphinx.ext.autosummary'] autosummary_generate = True autosummary_imported_members = True + +# test for #10058 - shoud be scoped just to test_autosummary_imported_members_table_10058 +autodoc_class_signature = 'separated' \ No newline at end of file diff --git a/tests/roots/test-ext-autosummary-imported_members/index.rst b/tests/roots/test-ext-autosummary-imported_members/index.rst index 608ca2954f7..59346501ca5 100644 --- a/tests/roots/test-ext-autosummary-imported_members/index.rst +++ b/tests/roots/test-ext-autosummary-imported_members/index.rst @@ -5,3 +5,10 @@ test-ext-autosummary-mock_imports :toctree: generated autosummary_dummy_package + +.. currentmodule:: autosummary_dummy_package + +.. autosummary:: + + foo + Bar diff --git a/tests/test_ext_autosummary.py b/tests/test_ext_autosummary.py index 13da15e503f..aab156c21d1 100644 --- a/tests/test_ext_autosummary.py +++ b/tests/test_ext_autosummary.py @@ -535,6 +535,50 @@ def test_autosummary_imported_members(app, status, warning): finally: sys.modules.pop('autosummary_dummy_package', None) +@pytest.mark.sphinx('dummy', testroot='ext-autosummary-imported_members') +def test_autosummary_imported_members_table_10058(app, status, warning): + try: + #app.env.config.autodoc_class_signature = 'separated' + app.build() + + doctree = app.env.get_doctree('index') + + assert_node(doctree, (nodes.section,)) + # nodes.paragraph, + # addnodes.tabular_col_spec, + # autosummary_table, + # [autosummary_toc, addnodes.toctree])) + assert_node(doctree[0], ( + nodes.title, + addnodes.tabular_col_spec, + autosummary_table, + autosummary_toc, + addnodes.tabular_col_spec, + autosummary_table + )) + + table = list(doctree[0].traverse(autosummary_table))[1] + + assert_node(table, [ + autosummary_table, + nodes.table, + nodes.tgroup, + (nodes.colspec, nodes.colspec, nodes.tbody) + ]) + + tbody = table.next_node(nodes.tbody) + + assert_node(tbody, ( + [nodes.row, (nodes.entry, nodes.entry)], + [nodes.row, (nodes.entry, nodes.entry)] + )) + + assert 'foo' in tbody[0][0].next_node(nodes.Text).astext() + assert 'Bar' in tbody[1][0].next_node(nodes.Text).astext() + + finally: + sys.modules.pop('autosummary_dummy_package', None) + @pytest.mark.sphinx(testroot='ext-autodoc', confoverrides={'extensions': ['sphinx.ext.autosummary']}) From ca44e2fb66b7201f0954ddd29a4b2f18bd5cfaca Mon Sep 17 00:00:00 2001 From: Jarrad Whitaker Date: Fri, 7 Jan 2022 22:14:18 +1100 Subject: [PATCH 2/2] Fix #10058 Pass the `autosummary_imported_members` config var into Documenter.options.imported_members, so we don't miss members from autosummary tables. --- sphinx/ext/autosummary/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sphinx/ext/autosummary/__init__.py b/sphinx/ext/autosummary/__init__.py index 36dc230193e..a8688adda3a 100644 --- a/sphinx/ext/autosummary/__init__.py +++ b/sphinx/ext/autosummary/__init__.py @@ -256,8 +256,9 @@ class Autosummary(SphinxDirective): } def run(self) -> List[Node]: + opts = Options({'imported-members': self.env.app.config.autosummary_imported_members}) self.bridge = DocumenterBridge(self.env, self.state.document.reporter, - Options(), self.lineno, self.state) + opts, self.lineno, self.state) names = [x.strip().split()[0] for x in self.content if x.strip() and re.search(r'^[~a-zA-Z_]', x.strip()[0])]