Merge branch '4.4.x' into 4.x

This commit is contained in:
Takeshi KOMIYA 2022-03-03 02:24:53 +09:00
commit 37e8967f3f
2 changed files with 24 additions and 5 deletions

View File

@ -599,6 +599,11 @@ def test_mocked_module_imports(app, warning):
@pytest.mark.sphinx('html', testroot='ext-autodoc', @pytest.mark.sphinx('html', testroot='ext-autodoc',
confoverrides={'autodoc_typehints': "signature"}) confoverrides={'autodoc_typehints': "signature"})
def test_autodoc_typehints_signature(app): def test_autodoc_typehints_signature(app):
if sys.version_info < (3, 11):
type_o = "typing.Optional[typing.Any]"
else:
type_o = "typing.Any"
options = {"members": None, options = {"members": None,
"undoc-members": None} "undoc-members": None}
actual = do_autodoc(app, 'module', 'target.typehints', options) actual = do_autodoc(app, 'module', 'target.typehints', options)
@ -612,7 +617,7 @@ def test_autodoc_typehints_signature(app):
' :type: int', ' :type: int',
'', '',
'', '',
'.. py:class:: Math(s: str, o: typing.Optional[typing.Any] = None)', '.. py:class:: Math(s: str, o: %s = None)' % type_o,
' :module: target.typehints', ' :module: target.typehints',
'', '',
'', '',
@ -1146,6 +1151,11 @@ def test_autodoc_typehints_description_and_type_aliases(app):
@pytest.mark.sphinx('html', testroot='ext-autodoc', @pytest.mark.sphinx('html', testroot='ext-autodoc',
confoverrides={'autodoc_typehints_format': "short"}) confoverrides={'autodoc_typehints_format': "short"})
def test_autodoc_typehints_format_short(app): def test_autodoc_typehints_format_short(app):
if sys.version_info < (3, 11):
type_o = "~typing.Optional[~typing.Any]"
else:
type_o = "~typing.Any"
options = {"members": None, options = {"members": None,
"undoc-members": None} "undoc-members": None}
actual = do_autodoc(app, 'module', 'target.typehints', options) actual = do_autodoc(app, 'module', 'target.typehints', options)
@ -1159,7 +1169,7 @@ def test_autodoc_typehints_format_short(app):
' :type: int', ' :type: int',
'', '',
'', '',
'.. py:class:: Math(s: str, o: ~typing.Optional[~typing.Any] = None)', '.. py:class:: Math(s: str, o: %s = None)' % type_o,
' :module: target.typehints', ' :module: target.typehints',
'', '',
'', '',

View File

@ -190,7 +190,10 @@ def test_signature_annotations():
# Space around '=' for defaults # Space around '=' for defaults
sig = inspect.signature(f7) sig = inspect.signature(f7)
assert stringify_signature(sig) == '(x: typing.Optional[int] = None, y: dict = {}) -> None' if sys.version_info < (3, 11):
assert stringify_signature(sig) == '(x: typing.Optional[int] = None, y: dict = {}) -> None'
else:
assert stringify_signature(sig) == '(x: int = None, y: dict = {}) -> None'
# Callable types # Callable types
sig = inspect.signature(f8) sig = inspect.signature(f8)
@ -261,11 +264,17 @@ def test_signature_annotations():
# show_return_annotation is False # show_return_annotation is False
sig = inspect.signature(f7) sig = inspect.signature(f7)
assert stringify_signature(sig, show_return_annotation=False) == '(x: typing.Optional[int] = None, y: dict = {})' if sys.version_info < (3, 11):
assert stringify_signature(sig, show_return_annotation=False) == '(x: typing.Optional[int] = None, y: dict = {})'
else:
assert stringify_signature(sig, show_return_annotation=False) == '(x: int = None, y: dict = {})'
# unqualified_typehints is True # unqualified_typehints is True
sig = inspect.signature(f7) sig = inspect.signature(f7)
assert stringify_signature(sig, unqualified_typehints=True) == '(x: ~typing.Optional[int] = None, y: dict = {}) -> None' if sys.version_info < (3, 11):
assert stringify_signature(sig, unqualified_typehints=True) == '(x: ~typing.Optional[int] = None, y: dict = {}) -> None'
else:
assert stringify_signature(sig, unqualified_typehints=True) == '(x: int = None, y: dict = {}) -> None'
@pytest.mark.skipif(sys.version_info < (3, 8), reason='python 3.8+ is required.') @pytest.mark.skipif(sys.version_info < (3, 8), reason='python 3.8+ is required.')