2020-11-14 11:22:45 -06:00
|
|
|
"""
|
|
|
|
test_ext_autodoc_autodata
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
Test the autodoc extension. This tests mainly the Documenters; the auto
|
|
|
|
directives are tested in a test source file translated by test_build.
|
|
|
|
|
2020-12-31 11:00:29 -06:00
|
|
|
:copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
|
2020-11-14 11:22:45 -06:00
|
|
|
:license: BSD, see LICENSE for details.
|
|
|
|
"""
|
|
|
|
|
2020-11-18 08:55:14 -06:00
|
|
|
import sys
|
|
|
|
|
2020-11-14 11:22:45 -06:00
|
|
|
import pytest
|
2020-11-20 12:04:26 -06:00
|
|
|
|
|
|
|
from .test_ext_autodoc import do_autodoc
|
2020-11-14 11:22:45 -06:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.sphinx('html', testroot='ext-autodoc')
|
|
|
|
def test_autodata(app):
|
|
|
|
actual = do_autodoc(app, 'data', 'target.integer')
|
|
|
|
assert list(actual) == [
|
|
|
|
'',
|
|
|
|
'.. py:data:: integer',
|
|
|
|
' :module: target',
|
|
|
|
' :value: 1',
|
|
|
|
'',
|
|
|
|
' documentation for the integer',
|
|
|
|
'',
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.sphinx('html', testroot='ext-autodoc')
|
|
|
|
def test_autodata_novalue(app):
|
|
|
|
options = {'no-value': True}
|
|
|
|
actual = do_autodoc(app, 'data', 'target.integer', options)
|
|
|
|
assert list(actual) == [
|
|
|
|
'',
|
|
|
|
'.. py:data:: integer',
|
|
|
|
' :module: target',
|
|
|
|
'',
|
|
|
|
' documentation for the integer',
|
|
|
|
'',
|
|
|
|
]
|
2020-11-18 08:55:14 -06:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.skipif(sys.version_info < (3, 6), reason='python 3.6+ is required.')
|
|
|
|
@pytest.mark.sphinx('html', testroot='ext-autodoc')
|
|
|
|
def test_autodata_typed_variable(app):
|
|
|
|
actual = do_autodoc(app, 'data', 'target.typed_vars.attr2')
|
|
|
|
assert list(actual) == [
|
|
|
|
'',
|
|
|
|
'.. py:data:: attr2',
|
|
|
|
' :module: target.typed_vars',
|
|
|
|
' :type: str',
|
|
|
|
'',
|
|
|
|
' attr2',
|
|
|
|
'',
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.skipif(sys.version_info < (3, 6), reason='python 3.6+ is required.')
|
|
|
|
@pytest.mark.sphinx('html', testroot='ext-autodoc')
|
|
|
|
def test_autodata_type_comment(app):
|
|
|
|
actual = do_autodoc(app, 'data', 'target.typed_vars.attr3')
|
|
|
|
assert list(actual) == [
|
|
|
|
'',
|
|
|
|
'.. py:data:: attr3',
|
|
|
|
' :module: target.typed_vars',
|
|
|
|
' :type: str',
|
|
|
|
" :value: ''",
|
|
|
|
'',
|
|
|
|
' attr3',
|
|
|
|
'',
|
|
|
|
]
|
2020-11-18 07:02:04 -06:00
|
|
|
|
|
|
|
|
2020-11-27 22:47:23 -06:00
|
|
|
@pytest.mark.sphinx('html', testroot='ext-autodoc')
|
|
|
|
def test_autodata_GenericAlias(app):
|
|
|
|
actual = do_autodoc(app, 'data', 'target.genericalias.T')
|
|
|
|
if sys.version_info < (3, 7):
|
|
|
|
assert list(actual) == [
|
|
|
|
'',
|
|
|
|
'.. py:data:: T',
|
|
|
|
' :module: target.genericalias',
|
|
|
|
' :value: typing.List[int]',
|
|
|
|
'',
|
|
|
|
' A list of int',
|
|
|
|
'',
|
|
|
|
]
|
|
|
|
else:
|
|
|
|
assert list(actual) == [
|
|
|
|
'',
|
|
|
|
'.. py:data:: T',
|
|
|
|
' :module: target.genericalias',
|
|
|
|
'',
|
|
|
|
' A list of int',
|
|
|
|
'',
|
|
|
|
' alias of List[int]',
|
|
|
|
'',
|
|
|
|
]
|
|
|
|
|
|
|
|
|
2020-11-18 07:02:04 -06:00
|
|
|
@pytest.mark.sphinx('html', testroot='ext-autodoc')
|
|
|
|
def test_autodata_NewType(app):
|
|
|
|
actual = do_autodoc(app, 'data', 'target.typevar.T6')
|
|
|
|
assert list(actual) == [
|
|
|
|
'',
|
|
|
|
'.. py:data:: T6',
|
|
|
|
' :module: target.typevar',
|
|
|
|
'',
|
|
|
|
' T6',
|
|
|
|
'',
|
|
|
|
' alias of :class:`int`',
|
|
|
|
'',
|
|
|
|
]
|
2020-11-21 04:55:45 -06:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.sphinx('html', testroot='ext-autodoc')
|
|
|
|
def test_autodata_TypeVar(app):
|
|
|
|
actual = do_autodoc(app, 'data', 'target.typevar.T1')
|
|
|
|
assert list(actual) == [
|
|
|
|
'',
|
|
|
|
'.. py:data:: T1',
|
|
|
|
' :module: target.typevar',
|
|
|
|
'',
|
|
|
|
' T1',
|
|
|
|
'',
|
|
|
|
" alias of TypeVar('T1')",
|
|
|
|
'',
|
|
|
|
]
|
2020-12-24 23:28:28 -06:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.skipif(sys.version_info < (3, 6), reason='python 3.6+ is required.')
|
|
|
|
@pytest.mark.sphinx('html', testroot='ext-autodoc')
|
|
|
|
def test_autodata_hide_value(app):
|
|
|
|
actual = do_autodoc(app, 'data', 'target.hide_value.SENTINEL1')
|
|
|
|
assert list(actual) == [
|
|
|
|
'',
|
|
|
|
'.. py:data:: SENTINEL1',
|
|
|
|
' :module: target.hide_value',
|
|
|
|
'',
|
|
|
|
' docstring',
|
|
|
|
'',
|
|
|
|
' :meta hide-value:',
|
|
|
|
'',
|
|
|
|
]
|
|
|
|
|
|
|
|
actual = do_autodoc(app, 'data', 'target.hide_value.SENTINEL2')
|
|
|
|
assert list(actual) == [
|
|
|
|
'',
|
|
|
|
'.. py:data:: SENTINEL2',
|
|
|
|
' :module: target.hide_value',
|
|
|
|
'',
|
|
|
|
' :meta hide-value:',
|
|
|
|
'',
|
|
|
|
]
|