mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
test: Update testcase for autoclass_content and autodoc_docstring_signature
This commit is contained in:
parent
f7851b62e0
commit
81e2e1d971
19
tests/roots/test-ext-autodoc/target/docstring_signature.py
Normal file
19
tests/roots/test-ext-autodoc/target/docstring_signature.py
Normal file
@ -0,0 +1,19 @@
|
||||
class A:
|
||||
"""A(foo, bar)"""
|
||||
|
||||
|
||||
class B:
|
||||
"""B(foo, bar)"""
|
||||
def __init__(self):
|
||||
"""B(foo, bar, baz)"""
|
||||
|
||||
|
||||
class C:
|
||||
"""C(foo, bar)"""
|
||||
def __new__(cls):
|
||||
"""C(foo, bar, baz)"""
|
||||
|
||||
|
||||
class D:
|
||||
def __init__(self):
|
||||
"""D(foo, bar, baz)"""
|
@ -325,39 +325,6 @@ def test_get_doc():
|
||||
"""Döcstring"""
|
||||
assert getdocl('function', f) == ['Döcstring']
|
||||
|
||||
# __init__ have signature at first line of docstring
|
||||
class E:
|
||||
"""Class docstring"""
|
||||
def __init__(self, *args, **kw):
|
||||
"""
|
||||
__init__(a1, a2, kw1=True, kw2=False)
|
||||
|
||||
Init docstring
|
||||
"""
|
||||
|
||||
# signature line in the docstring will be kept when
|
||||
# autodoc_docstring_signature == False
|
||||
directive.env.config.autodoc_docstring_signature = False
|
||||
directive.env.config.autoclass_content = 'class'
|
||||
assert getdocl('class', E) == ['Class docstring']
|
||||
directive.env.config.autoclass_content = 'init'
|
||||
assert getdocl('class', E) == ['__init__(a1, a2, kw1=True, kw2=False)',
|
||||
'', 'Init docstring']
|
||||
directive.env.config.autoclass_content = 'both'
|
||||
assert getdocl('class', E) == ['Class docstring', '',
|
||||
'__init__(a1, a2, kw1=True, kw2=False)',
|
||||
'', 'Init docstring']
|
||||
|
||||
# signature line in the docstring will be removed when
|
||||
# autodoc_docstring_signature == True
|
||||
directive.env.config.autodoc_docstring_signature = True # default
|
||||
directive.env.config.autoclass_content = 'class'
|
||||
assert getdocl('class', E) == ['Class docstring']
|
||||
directive.env.config.autoclass_content = 'init'
|
||||
assert getdocl('class', E) == ['Init docstring']
|
||||
directive.env.config.autoclass_content = 'both'
|
||||
assert getdocl('class', E) == ['Class docstring', '', 'Init docstring']
|
||||
|
||||
# verify that method docstrings get extracted in both normal case
|
||||
# and in case of bound method posing as a function
|
||||
class J: # NOQA
|
||||
|
@ -281,6 +281,97 @@ def test_autodoc_docstring_signature(app):
|
||||
]
|
||||
|
||||
|
||||
@pytest.mark.sphinx('html', testroot='ext-autodoc')
|
||||
def test_autoclass_content_and_docstring_signature_class(app):
|
||||
app.config.autoclass_content = 'class'
|
||||
options = {"members": None,
|
||||
"undoc-members": None}
|
||||
actual = do_autodoc(app, 'module', 'target.docstring_signature', options)
|
||||
assert list(actual) == [
|
||||
'',
|
||||
'.. py:module:: target.docstring_signature',
|
||||
'',
|
||||
'',
|
||||
'.. py:class:: A(foo, bar)',
|
||||
' :module: target.docstring_signature',
|
||||
'',
|
||||
'',
|
||||
'.. py:class:: B(foo, bar)',
|
||||
' :module: target.docstring_signature',
|
||||
'',
|
||||
'',
|
||||
'.. py:class:: C(foo, bar)',
|
||||
' :module: target.docstring_signature',
|
||||
'',
|
||||
'',
|
||||
'.. py:class:: D()',
|
||||
' :module: target.docstring_signature',
|
||||
''
|
||||
]
|
||||
|
||||
|
||||
@pytest.mark.sphinx('html', testroot='ext-autodoc')
|
||||
def test_autoclass_content_and_docstring_signature_init(app):
|
||||
app.config.autoclass_content = 'init'
|
||||
options = {"members": None,
|
||||
"undoc-members": None}
|
||||
actual = do_autodoc(app, 'module', 'target.docstring_signature', options)
|
||||
assert list(actual) == [
|
||||
'',
|
||||
'.. py:module:: target.docstring_signature',
|
||||
'',
|
||||
'',
|
||||
'.. py:class:: A(foo, bar)',
|
||||
' :module: target.docstring_signature',
|
||||
'',
|
||||
'',
|
||||
'.. py:class:: B(foo, bar, baz)',
|
||||
' :module: target.docstring_signature',
|
||||
'',
|
||||
'',
|
||||
'.. py:class:: C(foo, bar, baz)',
|
||||
' :module: target.docstring_signature',
|
||||
'',
|
||||
'',
|
||||
'.. py:class:: D(foo, bar, baz)',
|
||||
' :module: target.docstring_signature',
|
||||
''
|
||||
]
|
||||
|
||||
|
||||
@pytest.mark.sphinx('html', testroot='ext-autodoc')
|
||||
def test_autoclass_content_and_docstring_signature_both(app):
|
||||
app.config.autoclass_content = 'both'
|
||||
options = {"members": None,
|
||||
"undoc-members": None}
|
||||
actual = do_autodoc(app, 'module', 'target.docstring_signature', options)
|
||||
assert list(actual) == [
|
||||
'',
|
||||
'.. py:module:: target.docstring_signature',
|
||||
'',
|
||||
'',
|
||||
'.. py:class:: A(foo, bar)',
|
||||
' :module: target.docstring_signature',
|
||||
'',
|
||||
'',
|
||||
'.. py:class:: B(foo, bar)',
|
||||
' :module: target.docstring_signature',
|
||||
'',
|
||||
' B(foo, bar, baz)',
|
||||
' ',
|
||||
'',
|
||||
'.. py:class:: C(foo, bar)',
|
||||
' :module: target.docstring_signature',
|
||||
'',
|
||||
' C(foo, bar, baz)',
|
||||
' ',
|
||||
'',
|
||||
'.. py:class:: D(foo, bar, baz)',
|
||||
' :module: target.docstring_signature',
|
||||
'',
|
||||
]
|
||||
|
||||
|
||||
@pytest.mark.sphinx('html', testroot='ext-autodoc')
|
||||
def test_mocked_module_imports(app, warning):
|
||||
# no autodoc_mock_imports
|
||||
|
Loading…
Reference in New Issue
Block a user