autodoc: Test the signature of typing.Generic subclasses.

This test is currently failing because typing.Generic.__new__ clobbers the
real signature.
This commit is contained in:
Juan Carrano
2020-08-21 13:53:36 +02:00
parent 9d48cb9798
commit 642686159f
2 changed files with 28 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
from typing import TypeVar, Generic
T = TypeVar('T')
# Test that typing.Generic's __new__ method does not mask our class'
# __init__ signature.
class A(Generic[T]):
"""docstring for A"""
def __init__(self, a, b=None):
pass

View File

@@ -290,6 +290,22 @@ def test_format_signature(app):
'(b, c=42, *d, **e)'
@pytest.mark.skipif(sys.version_info < (3, 5), reason='typing is available since python3.5.')
@pytest.mark.xfail
@pytest.mark.sphinx('html', testroot='ext-autodoc')
def test_autodoc_process_signature_typing_generic(app):
actual = do_autodoc(app, 'class', 'target.generic_class.A', {})
assert list(actual) == [
'',
'.. py:class:: A(a, b=None)',
' :module: target.generic_class',
'',
' docstring for A',
'',
]
def test_autodoc_process_signature_typehints(app):
captured = []