Skip to content

Commit

Permalink
Merge pull request #8595 from tk0miya/8594_empty_all
Browse files Browse the repository at this point in the history
Fix #8594: autodoc: empty __all__ attribute is ignored
  • Loading branch information
tk0miya committed Dec 28, 2020
2 parents b19bce9 + 0d84818 commit 119ddf9
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 1 deletion.
1 change: 1 addition & 0 deletions CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ Bugs fixed
* #741: autodoc: inherited-members doesn't work for instance attributes on super
class
* #8592: autodoc: ``:meta public:`` does not effect to variables
* #8594: autodoc: empty __all__ attribute is ignored

Testing
--------
Expand Down
2 changes: 1 addition & 1 deletion sphinx/ext/autodoc/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -1074,7 +1074,7 @@ def get_module_members(self) -> Dict[str, ObjectMember]:
def get_object_members(self, want_all: bool) -> Tuple[bool, ObjectMembers]:
members = self.get_module_members()
if want_all:
if not self.__all__:
if self.__all__ is None:
# for implicit module members, check __module__ to avoid
# documenting imported objects
return True, list(members.values())
Expand Down
16 changes: 16 additions & 0 deletions tests/roots/test-ext-autodoc/target/empty_all.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
"""
docsting of empty_all module.
"""
__all__ = []


def foo():
"""docstring"""


def bar():
"""docstring"""


def baz():
"""docstring"""
27 changes: 27 additions & 0 deletions tests/test_ext_autodoc_automodule.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
"""
test_ext_autodoc_autocmodule
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Test the autodoc extension. This tests mainly the Documenters; the auto
directives are tested in a test source file translated by test_build.
:copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""

import pytest

from .test_ext_autodoc import do_autodoc


@pytest.mark.sphinx('html', testroot='ext-autodoc')
def test_empty_all(app):
options = {'members': True}
actual = do_autodoc(app, 'module', 'target.empty_all', options)
assert list(actual) == [
'',
'.. py:module:: target.empty_all',
'',
'docsting of empty_all module.',
'',
]

0 comments on commit 119ddf9

Please sign in to comment.