]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
[3.13] gh-136914: Fix support of cached functions and properties in DocTest's lineno...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sun, 10 Aug 2025 20:05:28 +0000 (22:05 +0200)
committerGitHub <noreply@github.com>
Sun, 10 Aug 2025 20:05:28 +0000 (20:05 +0000)
commit23b7a95f41674fa949e1b415f82e4b8858db47ae
tree7d339c7d2670f57f9ee45c66bfd5d4cd4fb9c9cb
parenta64c9488ac3864e570c07cbc1875601747f3b951
[3.13] gh-136914: Fix support of cached functions and properties in DocTest's lineno computation (GH-136930) (GH-137615)

Previously, DocTest's lineno of functions and methods decorated with
functools.cache(), functools.lru_cache() and functools.cached_property()
was not properly returned (None was returned) because the
computation relied on inspect.isfunction() which does not consider the
decorated result as a function.

We now use the more generic inspect.isroutine(), as elsewhere
in doctest's logic.

Also, added a special case for functools.cached_property().
(cherry picked from commit fece15d29f28e89f1231afa80508c80ed28dc37d)

Co-authored-by: Denis Laxalde <denis@laxalde.org>
Lib/doctest.py
Lib/test/test_doctest/doctest_lineno.py
Lib/test/test_doctest/test_doctest.py
Misc/NEWS.d/next/Library/2025-07-21-15-40-00.gh-issue-136914.-GNG-d.rst [new file with mode: 0644]