mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Issue #21740: Support wrapped callables in pydoc. Patch by Claudiu Popa.
This commit is contained in:
parent
a49d6a213e
commit
b532df62b9
3 changed files with 22 additions and 2 deletions
|
@ -985,7 +985,8 @@ class DocTestFinder:
|
||||||
for valname, val in obj.__dict__.items():
|
for valname, val in obj.__dict__.items():
|
||||||
valname = '%s.%s' % (name, valname)
|
valname = '%s.%s' % (name, valname)
|
||||||
# Recurse to functions & classes.
|
# Recurse to functions & classes.
|
||||||
if ((inspect.isroutine(val) or inspect.isclass(val)) and
|
if ((inspect.isroutine(inspect.unwrap(val))
|
||||||
|
or inspect.isclass(val)) and
|
||||||
self._from_module(module, val)):
|
self._from_module(module, val)):
|
||||||
self._find(tests, val, valname, module, source_lines,
|
self._find(tests, val, valname, module, source_lines,
|
||||||
globs, seen)
|
globs, seen)
|
||||||
|
|
|
@ -4,6 +4,7 @@ Test script for doctest.
|
||||||
|
|
||||||
from test import support
|
from test import support
|
||||||
import doctest
|
import doctest
|
||||||
|
import functools
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
@ -434,7 +435,7 @@ We'll simulate a __file__ attr that ends in pyc:
|
||||||
>>> tests = finder.find(sample_func)
|
>>> tests = finder.find(sample_func)
|
||||||
|
|
||||||
>>> print(tests) # doctest: +ELLIPSIS
|
>>> print(tests) # doctest: +ELLIPSIS
|
||||||
[<DocTest sample_func from ...:18 (1 example)>]
|
[<DocTest sample_func from ...:19 (1 example)>]
|
||||||
|
|
||||||
The exact name depends on how test_doctest was invoked, so allow for
|
The exact name depends on how test_doctest was invoked, so allow for
|
||||||
leading path components.
|
leading path components.
|
||||||
|
@ -2364,6 +2365,22 @@ def test_trailing_space_in_test():
|
||||||
foo \n
|
foo \n
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
class Wrapper:
|
||||||
|
def __init__(self, func):
|
||||||
|
self.func = func
|
||||||
|
functools.update_wrapper(self, func)
|
||||||
|
|
||||||
|
def __call__(self, *args, **kwargs):
|
||||||
|
self.func(*args, **kwargs)
|
||||||
|
|
||||||
|
@Wrapper
|
||||||
|
def test_look_in_unwrapped():
|
||||||
|
"""
|
||||||
|
Docstrings in wrapped functions must be detected as well.
|
||||||
|
|
||||||
|
>>> 'one other test'
|
||||||
|
'one other test'
|
||||||
|
"""
|
||||||
|
|
||||||
def test_unittest_reportflags():
|
def test_unittest_reportflags():
|
||||||
"""Default unittest reporting flags can be set to control reporting
|
"""Default unittest reporting flags can be set to control reporting
|
||||||
|
|
|
@ -194,6 +194,8 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #21740: Support wrapped callables in pydoc. Patch by Claudiu Popa.
|
||||||
|
|
||||||
- Issue #23009: Make sure selectors.EpollSelecrtor.select() works when no
|
- Issue #23009: Make sure selectors.EpollSelecrtor.select() works when no
|
||||||
FD is registered.
|
FD is registered.
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue