[Python-checkins] r76937 - in python/branches/py3k: Lib/doctest.py Lib/runpy.py Misc/NEWS
r.david.murray
python-checkins at python.org
Sun Dec 20 18:28:32 CET 2009
Author: r.david.murray
Date: Sun Dec 20 18:28:31 2009
New Revision: 76937
Log:
Merged revisions 76934-76935 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r76934 | r.david.murray | 2009-12-20 11:24:46 -0500 (Sun, 20 Dec 2009) | 2 lines
Fix comment typo.
........
r76935 | r.david.murray | 2009-12-20 11:46:06 -0500 (Sun, 20 Dec 2009) | 10 lines
Issue #7376: When called with no arguments doctest was running a
self-test. Because of a change to the way tracebacks are printed,
this self-test was failing. The test is run (and passes) during normal
regression testing. So instead of running the failing self-test this
patch makes doctest emit a usage message. This is better behavior anyway
since passing in arguments is the real reason to run doctest as a command.
Bug discovery and initial patch by Florent Xicluna.
........
Modified:
python/branches/py3k/ (props changed)
python/branches/py3k/Lib/doctest.py
python/branches/py3k/Lib/runpy.py
python/branches/py3k/Misc/NEWS
Modified: python/branches/py3k/Lib/doctest.py
==============================================================================
--- python/branches/py3k/Lib/doctest.py (original)
+++ python/branches/py3k/Lib/doctest.py Sun Dec 20 18:28:31 2009
@@ -2611,27 +2611,31 @@
""",
}
+
def _test():
testfiles = [arg for arg in sys.argv[1:] if arg and arg[0] != '-']
- if testfiles:
- for filename in testfiles:
- if filename.endswith(".py"):
- # It is a module -- insert its dir into sys.path and try to
- # import it. If it is part of a package, that possibly won't work
- # because of package imports.
- dirname, filename = os.path.split(filename)
- sys.path.insert(0, dirname)
- m = __import__(filename[:-3])
- del sys.path[0]
- failures, _ = testmod(m)
- else:
- failures, _ = testfile(filename, module_relative=False)
- if failures:
- return 1
- else:
- r = unittest.TextTestRunner()
- r.run(DocTestSuite())
+ if not testfiles:
+ name = os.path.basename(sys.argv[0])
+ if '__loader__' in globals() and name.endswith('.py'): # python -m
+ name, _ = os.path.splitext(name)
+ print("usage: {0} [-v] file ...".format(name))
+ return 2
+ for filename in testfiles:
+ if filename.endswith(".py"):
+ # It is a module -- insert its dir into sys.path and try to
+ # import it. If it is part of a package, that possibly
+ # won't work because of package imports.
+ dirname, filename = os.path.split(filename)
+ sys.path.insert(0, dirname)
+ m = __import__(filename[:-3])
+ del sys.path[0]
+ failures, _ = testmod(m)
+ else:
+ failures, _ = testfile(filename, module_relative=False)
+ if failures:
+ return 1
return 0
+
if __name__ == "__main__":
sys.exit(_test())
Modified: python/branches/py3k/Lib/runpy.py
==============================================================================
--- python/branches/py3k/Lib/runpy.py (original)
+++ python/branches/py3k/Lib/runpy.py Sun Dec 20 18:28:31 2009
@@ -125,7 +125,7 @@
Note that the executed module will have full access to the
__main__ namespace. If this is not desirable, the run_module()
- function sbould be used to run the module code in a fresh namespace.
+ function should be used to run the module code in a fresh namespace.
At the very least, these variables in __main__ will be overwritten:
__name__
Modified: python/branches/py3k/Misc/NEWS
==============================================================================
--- python/branches/py3k/Misc/NEWS (original)
+++ python/branches/py3k/Misc/NEWS Sun Dec 20 18:28:31 2009
@@ -511,6 +511,9 @@
Tests
-----
+- Issue #7376: instead of running a self-test (which was failing) when called
+ with no arguments, doctest.py now gives a usage message.
+
- Issue #7396: fix regrtest -s, which was broken by the -j enhancement.
- Issue #7498: test_multiprocessing now uses test.support.find_unused_port
More information about the Python-checkins
mailing list