summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2009-01-27 10:30:26 (GMT)
committerRaymond Hettinger <python@rcn.com>2009-01-27 10:30:26 (GMT)
commit8c0cee814fc0c4527ad39dc430802c331a804760 (patch)
treec7abdd7a663c35d7d39fd9e53f0b189e0cca4262
parentcdc9f2c1d573a4ae96ac592c303f7f443a704859 (diff)
downloadcpython-8c0cee814fc0c4527ad39dc430802c331a804760.zip
cpython-8c0cee814fc0c4527ad39dc430802c331a804760.tar.gz
cpython-8c0cee814fc0c4527ad39dc430802c331a804760.tar.bz2
Issue 5021: doctest.testfile should set __name__
-rw-r--r--Lib/collections.py2
-rw-r--r--Lib/doctest.py4
-rw-r--r--Misc/NEWS3
3 files changed, 8 insertions, 1 deletions
diff --git a/Lib/collections.py b/Lib/collections.py
index ace2b2a..81d8928 100644
--- a/Lib/collections.py
+++ b/Lib/collections.py
@@ -103,7 +103,7 @@ def namedtuple(typename, field_names, verbose=False):
# where the named tuple is created. Bypass this step in enviroments where
# sys._getframe is not defined (Jython for example).
if hasattr(_sys, '_getframe'):
- result.__module__ = _sys._getframe(1).f_globals['__name__']
+ result.__module__ = _sys._getframe(1).f_globals.get('__name__', '__main__')
return result
diff --git a/Lib/doctest.py b/Lib/doctest.py
index 3f2baa5..aeeb15d 100644
--- a/Lib/doctest.py
+++ b/Lib/doctest.py
@@ -844,6 +844,8 @@ class DocTestFinder:
globs = globs.copy()
if extraglobs is not None:
globs.update(extraglobs)
+ if '__name__' not in globs:
+ globs['__name__'] = '__main__' # provide a default module name
# Recursively expore `obj`, extracting DocTests.
tests = []
@@ -1937,6 +1939,8 @@ def testfile(filename, module_relative=True, name=None, package=None,
globs = globs.copy()
if extraglobs is not None:
globs.update(extraglobs)
+ if '__name__' not in globs:
+ globs['__name__'] = '__main__'
if raise_on_error:
runner = DebugRunner(verbose=verbose, optionflags=optionflags)
diff --git a/Misc/NEWS b/Misc/NEWS
index 431a3e0..1a39f0e 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -76,6 +76,9 @@ Core and Builtins
Library
-------
+- Issue 5021: doctest.testfile() did not create __name__ and
+ collections.namedtuple() relied on __name__ being defined.
+
- Issue #3881: Help Tcl to load even when started through the
unreadable local symlink to "Program Files" on Vista.