diff options
author | Raymond Hettinger <python@rcn.com> | 2009-01-27 10:06:09 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2009-01-27 10:06:09 (GMT) |
commit | 0f05517d85efcce6fc57cec63ec54a4612ee5382 (patch) | |
tree | 9bdba0b7260d9c587f0ab69d12c6e89cf72396e6 | |
parent | d17ad8d6386c446763554d61d777ee65ea68e97a (diff) | |
download | cpython-0f05517d85efcce6fc57cec63ec54a4612ee5382.zip cpython-0f05517d85efcce6fc57cec63ec54a4612ee5382.tar.gz cpython-0f05517d85efcce6fc57cec63ec54a4612ee5382.tar.bz2 |
Issue 5021: doctest.testfile should set __name__
-rw-r--r-- | Lib/collections.py | 2 | ||||
-rw-r--r-- | Lib/doctest.py | 4 | ||||
-rw-r--r-- | Misc/NEWS | 6 |
3 files changed, 11 insertions, 1 deletions
diff --git a/Lib/collections.py b/Lib/collections.py index 6831cf1..4bde5b3 100644 --- a/Lib/collections.py +++ b/Lib/collections.py @@ -111,7 +111,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 74ae795..5fa588d 100644 --- a/Lib/doctest.py +++ b/Lib/doctest.py @@ -837,6 +837,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 = [] @@ -1947,6 +1949,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) @@ -148,6 +148,12 @@ Library operator module; use the abstract base classes instead. Also removed the repeat() function; use mul() instead. +- Issue 5021: doctest.testfile() did not create __name__ and + collections.namedtuple() relied on __name__ being defined. + +- Backport importlib from Python 3.1. Only the import_module() function has + been backported to help facilitate transitions from 2.7 to 3.1. + - Issue #1885: distutils. When running sdist with --formats=tar,gztar the tar file was overriden by the gztar one. |