Fix an exception introduced by b69b59480cba for __init__ with no docstring.

This commit is contained in:
Ben Darnell 2014-01-20 11:54:51 -05:00
parent 3ea7613657
commit b0ca105c36
2 changed files with 19 additions and 2 deletions

View File

@ -1085,8 +1085,9 @@ class ClassDocumenter(ModuleLevelDocumenter):
initdocstring = self.get_attr(
self.get_attr(self.object, '__init__', None), '__doc__')
# for new-style classes, no __init__ means default __init__
if (initdocstring == object.__init__.__doc__ or # for pypy
initdocstring.strip() == object.__init__.__doc__): #for !pypy
if (initdocstring is not None and
(initdocstring == object.__init__.__doc__ or # for pypy
initdocstring.strip() == object.__init__.__doc__)): #for !pypy
initdocstring = None
if initdocstring:
if content == 'init':

View File

@ -348,6 +348,22 @@ def test_get_doc():
directive.env.config.autoclass_content = 'both'
assert getdocl('class', F) == ['Class docstring']
# class has __init__ method with no docstring
class G(object):
"""Class docstring"""
def __init__(self):
pass
# docstring in the __init__ method of base class will not be used
for f in (False, True):
directive.env.config.autodoc_docstring_signature = f
directive.env.config.autoclass_content = 'class'
assert getdocl('class', G) == ['Class docstring']
directive.env.config.autoclass_content = 'init'
assert getdocl('class', G) == ['Class docstring']
directive.env.config.autoclass_content = 'both'
assert getdocl('class', G) == ['Class docstring']
@with_setup(setup_test)
def test_docstring_processing():