python-sphinx/fix-test_autodoc.patch
2018-04-11 19:05:47 +02:00

33 lines
1.5 KiB
Diff

diff --git a/sphinx/util/inspect.py b/sphinx/util/inspect.py
index e8427fd84..492db8700 100644
--- a/sphinx/util/inspect.py
+++ b/sphinx/util/inspect.py
@@ -313,7 +313,10 @@ def __init__(self, subject, bound_method=False):
try:
self.signature = inspect.signature(subject)
except IndexError:
- if hasattr(subject, '_partialmethod'): # partialmethod with no argument
+ # Until python 3.6.4, cpython has been crashed on inspection for
+ # partialmethods not having any arguments.
+ # https://bugs.python.org/issue33009
+ if hasattr(subject, '_partialmethod'):
self.signature = None
self.partialmethod_with_noargs = True
else:
diff --git a/tests/test_autodoc.py b/tests/test_autodoc.py
index 9398edc34..ed6d050fa 100644
--- a/tests/test_autodoc.py
+++ b/tests/test_autodoc.py
@@ -952,7 +952,10 @@ def call_autodoc(objtype, name):
' Update state of cell to *state*.',
' ',
]
- if sys.version_info < (3, 5, 4):
+ if (sys.version_info < (3, 5, 4) or
+ (3, 6, 5) <= sys.version_info < (3, 7) or
+ (3, 7, 0, 'beta', 3) <= sys.version_info):
+ # TODO: this condition should be updated after 3.7-final release.
expected = '\n'.join(expected).replace(' -> None', '').split('\n')
assert call_autodoc('class', 'target.partialmethod.Cell') == expected