mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Test autodoc_typehint_undoc
Add new tests to exercise the new autodoc_typehint_undoc option. Where an existing test would have a meaningful behavior change with the new option set to False, that test is copied, the new option is set to False in the copy, and the assertions reflect the new expected behavior. The new test test_autodoc_typehints_description_with_documented_init illustrates the problem reported in #7329, and the new test test_autodoc_typehints_description_with_documented_init_no_undoc illustrates that this issue no longer occurs when the new autodoc_typehint_undoc option is set to False.
This commit is contained in:
parent
be2cee53a1
commit
4c72848b85
@ -68,3 +68,13 @@ def missing_attr(c,
|
||||
):
|
||||
# type: (...) -> str
|
||||
return a + (b or "")
|
||||
|
||||
|
||||
class _ClassWithDocumentedInit:
|
||||
"""Class docstring."""
|
||||
|
||||
def __init__(self, x: int) -> None:
|
||||
"""Init docstring.
|
||||
|
||||
:param x: Some integer
|
||||
"""
|
||||
|
@ -682,6 +682,90 @@ def test_autodoc_typehints_description(app):
|
||||
in context)
|
||||
|
||||
|
||||
@pytest.mark.sphinx('text', testroot='ext-autodoc',
|
||||
confoverrides={'autodoc_typehints': "description",
|
||||
'autodoc_typehints_description_target': 'documented'})
|
||||
def test_autodoc_typehints_description_no_undoc(app):
|
||||
# No :type: or :rtype: will be injected for `incr`, which does not have
|
||||
# a description for its parameters or its return. `tuple_args` does
|
||||
# describe them, so :type: and :rtype: will be added.
|
||||
(app.srcdir / 'index.rst').write_text(
|
||||
'.. autofunction:: target.typehints.incr\n'
|
||||
'\n'
|
||||
'.. autofunction:: target.typehints.tuple_args\n'
|
||||
'\n'
|
||||
' :param x: arg\n'
|
||||
' :return: another tuple\n'
|
||||
)
|
||||
app.build()
|
||||
context = (app.outdir / 'index.txt').read_text()
|
||||
assert ('target.typehints.incr(a, b=1)\n'
|
||||
'\n'
|
||||
'target.typehints.tuple_args(x)\n'
|
||||
'\n'
|
||||
' Parameters:\n'
|
||||
' **x** (*Tuple**[**int**, **Union**[**int**, **str**]**]*) -- arg\n'
|
||||
'\n'
|
||||
' Returns:\n'
|
||||
' another tuple\n'
|
||||
'\n'
|
||||
' Return type:\n'
|
||||
' Tuple[int, int]\n'
|
||||
in context)
|
||||
|
||||
|
||||
@pytest.mark.sphinx('text', testroot='ext-autodoc',
|
||||
confoverrides={'autodoc_typehints': "description"})
|
||||
def test_autodoc_typehints_description_with_documented_init(app):
|
||||
(app.srcdir / 'index.rst').write_text(
|
||||
'.. autoclass:: target.typehints._ClassWithDocumentedInit\n'
|
||||
' :special-members: __init__\n'
|
||||
)
|
||||
app.build()
|
||||
context = (app.outdir / 'index.txt').read_text()
|
||||
assert ('class target.typehints._ClassWithDocumentedInit(x)\n'
|
||||
'\n'
|
||||
' Class docstring.\n'
|
||||
'\n'
|
||||
' Parameters:\n'
|
||||
' **x** (*int*) --\n'
|
||||
'\n'
|
||||
' Return type:\n'
|
||||
' None\n'
|
||||
'\n'
|
||||
' __init__(x)\n'
|
||||
'\n'
|
||||
' Init docstring.\n'
|
||||
'\n'
|
||||
' Parameters:\n'
|
||||
' **x** (*int*) -- Some integer\n'
|
||||
'\n'
|
||||
' Return type:\n'
|
||||
' None\n' == context)
|
||||
|
||||
|
||||
@pytest.mark.sphinx('text', testroot='ext-autodoc',
|
||||
confoverrides={'autodoc_typehints': "description",
|
||||
'autodoc_typehints_description_target': 'documented'})
|
||||
def test_autodoc_typehints_description_with_documented_init_no_undoc(app):
|
||||
(app.srcdir / 'index.rst').write_text(
|
||||
'.. autoclass:: target.typehints._ClassWithDocumentedInit\n'
|
||||
' :special-members: __init__\n'
|
||||
)
|
||||
app.build()
|
||||
context = (app.outdir / 'index.txt').read_text()
|
||||
assert ('class target.typehints._ClassWithDocumentedInit(x)\n'
|
||||
'\n'
|
||||
' Class docstring.\n'
|
||||
'\n'
|
||||
' __init__(x)\n'
|
||||
'\n'
|
||||
' Init docstring.\n'
|
||||
'\n'
|
||||
' Parameters:\n'
|
||||
' **x** (*int*) -- Some integer\n' == context)
|
||||
|
||||
|
||||
@pytest.mark.sphinx('text', testroot='ext-autodoc',
|
||||
confoverrides={'autodoc_typehints': "description"})
|
||||
def test_autodoc_typehints_description_for_invalid_node(app):
|
||||
|
Loading…
Reference in New Issue
Block a user