diff options
author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2017-10-16 22:33:38 +0900 |
---|---|---|
committer | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2017-10-19 22:24:40 +0900 |
commit | 7aab8c3b07653cceeea534bf536eb8bee2bb7f61 (patch) | |
tree | 8291c706301d20d687d438e33fb31e5cf29f5620 | |
parent | 3369d9a03a9f1e173ed3b8281a50f4d52eb39fce (diff) | |
download | sphinx-git-7aab8c3b07653cceeea534bf536eb8bee2bb7f61.tar.gz |
Fix #4156: failed to parse class comment
-rw-r--r-- | sphinx/pycode/parser.py | 1 | ||||
-rw-r--r-- | tests/test_pycode_parser.py | 12 |
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' |