[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