mirror of
https://github.com/python/cpython.git
synced 2025-07-30 14:44:10 +00:00
Issue #4197: Fix the remaining part of the doctest-in-zipfile problem by giving linecache access to the module globals when available
This commit is contained in:
parent
60b2e38b68
commit
68060013ea
2 changed files with 42 additions and 3 deletions
|
@ -820,7 +820,15 @@ class DocTestFinder:
|
|||
# given object's docstring.
|
||||
try:
|
||||
file = inspect.getsourcefile(obj) or inspect.getfile(obj)
|
||||
source_lines = linecache.getlines(file)
|
||||
if module is not None:
|
||||
# Supply the module globals in case the module was
|
||||
# originally loaded via a PEP 302 loader and
|
||||
# file is not a valid filesystem path
|
||||
source_lines = linecache.getlines(file, module.__dict__)
|
||||
else:
|
||||
# No access to a loader, so assume it's a normal
|
||||
# filesystem path
|
||||
source_lines = linecache.getlines(file)
|
||||
if not source_lines:
|
||||
source_lines = None
|
||||
except TypeError:
|
||||
|
@ -1433,8 +1441,10 @@ class DocTestRunner:
|
|||
d = self._name2ft
|
||||
for name, (f, t) in other._name2ft.items():
|
||||
if name in d:
|
||||
print "*** DocTestRunner.merge: '" + name + "' in both" \
|
||||
" testers; summing outcomes."
|
||||
# Don't print here by default, since doing
|
||||
# so breaks some of the buildbots
|
||||
#print "*** DocTestRunner.merge: '" + name + "' in both" \
|
||||
# " testers; summing outcomes."
|
||||
f2, t2 = d[name]
|
||||
f = f + f2
|
||||
t = t + t2
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue