Karthikeyan Singaravelan <tir.kar...@gmail.com> added the comment:
functools.partial returns a partial object and detecting partials is not handled inside the finder when given a module. Perhaps partials could be handled as a special case to detect tests in them? diff --git a/Lib/doctest.py b/Lib/doctest.py index 79d91a040c..aeff913c9a 100644 --- a/Lib/doctest.py +++ b/Lib/doctest.py @@ -95,6 +95,7 @@ __all__ = [ import __future__ import difflib import inspect +import functools import linecache import os import pdb @@ -962,6 +963,8 @@ class DocTestFinder: return module.__name__ == object.__module__ elif isinstance(object, property): return True # [XX] no way not be sure. + elif isinstance(object, functools.partial): + return True else: raise ValueError("object must be a class or function") @@ -989,7 +992,8 @@ class DocTestFinder: valname = '%s.%s' % (name, valname) # Recurse to functions & classes. if ((inspect.isroutine(inspect.unwrap(val)) - or inspect.isclass(val)) and + or inspect.isclass(val) + or isinstance(val, functools.partial)) and self._from_module(module, val)): self._find(tests, val, valname, module, source_lines, globs, seen) ---------- nosy: +xtreak versions: +Python 3.8 -Python 3.3 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue12790> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com