diff options
author | Ben Darnell <ben@bendarnell.com> | 2014-01-20 11:54:51 -0500 |
---|---|---|
committer | Ben Darnell <ben@bendarnell.com> | 2014-01-20 11:54:51 -0500 |
commit | b0ca105c36cd904147a0188f5337c75ff5e9a3db (patch) | |
tree | 45382a10ed8d5fb607ad0d2335143aef21fb7bdc | |
parent | 3ea76136576ab1219d897e9274c7f0afc716461d (diff) | |
download | sphinx-git-b0ca105c36cd904147a0188f5337c75ff5e9a3db.tar.gz |
Fix an exception introduced by b69b59480cba for __init__ with no docstring.
-rw-r--r-- | sphinx/ext/autodoc.py | 5 | ||||
-rw-r--r-- | tests/test_autodoc.py | 16 |
2 files changed, 19 insertions, 2 deletions
diff --git a/sphinx/ext/autodoc.py b/sphinx/ext/autodoc.py index c454641bf..d07014fa9 100644 --- a/sphinx/ext/autodoc.py +++ b/sphinx/ext/autodoc.py @@ -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': diff --git a/tests/test_autodoc.py b/tests/test_autodoc.py index 3735a7b68..3a80e7fc7 100644 --- a/tests/test_autodoc.py +++ b/tests/test_autodoc.py @@ -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(): |