summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2017-10-16 22:33:38 +0900
committerTakeshi KOMIYA <i.tkomiya@gmail.com>2017-10-19 22:24:40 +0900
commit7aab8c3b07653cceeea534bf536eb8bee2bb7f61 (patch)
tree8291c706301d20d687d438e33fb31e5cf29f5620
parent3369d9a03a9f1e173ed3b8281a50f4d52eb39fce (diff)
downloadsphinx-git-7aab8c3b07653cceeea534bf536eb8bee2bb7f61.tar.gz
Fix #4156: failed to parse class comment
-rw-r--r--sphinx/pycode/parser.py1
-rw-r--r--tests/test_pycode_parser.py12
2 files changed, 13 insertions, 0 deletions
diff --git a/sphinx/pycode/parser.py b/sphinx/pycode/parser.py
index d488842e9..9b5cb13c9 100644
--- a/sphinx/pycode/parser.py
+++ b/sphinx/pycode/parser.py
@@ -336,6 +336,7 @@ class VariableCommentPicker(ast.NodeVisitor):
self.current_classes.append(node.name)
self.add_entry(node.name)
self.context.append(node.name)
+ self.previous = node
for child in node.body:
self.visit(child)
self.context.pop()
diff --git a/tests/test_pycode_parser.py b/tests/test_pycode_parser.py
index cfea2ca00..8b7a945d4 100644
--- a/tests/test_pycode_parser.py
+++ b/tests/test_pycode_parser.py
@@ -226,6 +226,18 @@ def test_nested_class():
'Foo.Bar.attr2': 3}
+def test_class_comment():
+ source = ('import logging\n'
+ 'logger = logging.getLogger(__name__)\n'
+ '\n'
+ 'class Foo(object):\n'
+ ' """Bar"""\n')
+ parser = Parser(source)
+ parser.parse()
+ assert parser.comments == {}
+ assert parser.definitions == {'Foo': ('class', 4, 5)}
+
+
def test_comment_picker_multiline_string():
source = ('class Foo(object):\n'
' a = None\n'