mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Fix #7850: autodoc: KeyError is raised for invalid mark up
This commit is contained in:
parent
da395b4132
commit
4e739b85ee
2
CHANGES
2
CHANGES
@ -19,6 +19,8 @@ Bugs fixed
|
||||
* #7844: autodoc: Failed to detect module when relative module name given
|
||||
* #7856: autodoc: AttributeError is raised when non-class object is given to
|
||||
the autoclass directive
|
||||
* #7850: autodoc: KeyError is raised for invalid mark up when autodoc_typehints
|
||||
is 'description'
|
||||
|
||||
Testing
|
||||
--------
|
||||
|
@ -46,11 +46,16 @@ def merge_typehints(app: Sphinx, domain: str, objtype: str, contentnode: Element
|
||||
if objtype == 'class' and app.config.autoclass_content not in ('init', 'both'):
|
||||
return
|
||||
|
||||
signature = cast(addnodes.desc_signature, contentnode.parent[0])
|
||||
if signature['module']:
|
||||
fullname = '.'.join([signature['module'], signature['fullname']])
|
||||
else:
|
||||
fullname = signature['fullname']
|
||||
try:
|
||||
signature = cast(addnodes.desc_signature, contentnode.parent[0])
|
||||
if signature['module']:
|
||||
fullname = '.'.join([signature['module'], signature['fullname']])
|
||||
else:
|
||||
fullname = signature['fullname']
|
||||
except KeyError:
|
||||
# signature node does not have valid context info for the target object
|
||||
return
|
||||
|
||||
annotations = app.env.temp_data.get('annotations', {})
|
||||
if annotations.get(fullname, {}):
|
||||
field_lists = [n for n in contentnode if isinstance(n, nodes.field_list)]
|
||||
|
@ -13,6 +13,8 @@ import sys
|
||||
|
||||
import pytest
|
||||
|
||||
from sphinx.testing import restructuredtext
|
||||
|
||||
from test_ext_autodoc import do_autodoc
|
||||
|
||||
IS_PYPY = platform.python_implementation() == 'PyPy'
|
||||
@ -633,6 +635,12 @@ def test_autodoc_typehints_description(app):
|
||||
in context)
|
||||
|
||||
|
||||
@pytest.mark.sphinx('text', testroot='ext-autodoc',
|
||||
confoverrides={'autodoc_typehints': "description"})
|
||||
def test_autodoc_typehints_description_for_invalid_node(app):
|
||||
text = ".. py:function:: hello; world"
|
||||
restructuredtext.parse(app, text) # raises no error
|
||||
|
||||
|
||||
@pytest.mark.sphinx('html', testroot='ext-autodoc')
|
||||
def test_autodoc_default_options(app):
|
||||
|
Loading…
Reference in New Issue
Block a user