]> granicus.if.org Git - python/commitdiff
Merged revisions 86236,86240,86332,86340,87271,87273,87447 via svnmerge from
authorÉric Araujo <merwok@netwok.org>
Wed, 2 Feb 2011 21:38:37 +0000 (21:38 +0000)
committerÉric Araujo <merwok@netwok.org>
Wed, 2 Feb 2011 21:38:37 +0000 (21:38 +0000)
svn+ssh://pythondev@svn.python.org/python/branches/py3k

The missing NEWS entries correspond to changes that were made before 3.1.3, but
I think it’s not usual to edit entries of released versions, so I put them at
the top.

........
  r86236 | eric.araujo | 2010-11-06 03:44:43 +0100 (sam., 06 nov. 2010) | 2 lines

  Make sure each test can be run standalone (./python Lib/distutils/tests/x.py)
........
  r86240 | eric.araujo | 2010-11-06 05:11:59 +0100 (sam., 06 nov. 2010) | 2 lines

  Prevent ResourceWarnings in test_gettext
........
  r86332 | eric.araujo | 2010-11-08 19:15:17 +0100 (lun., 08 nov. 2010) | 4 lines

  Add missing NEWS entry for a fix committed by Senthil.

  All recent modifications to distutils should now be covered in NEWS.
........
  r86340 | eric.araujo | 2010-11-08 22:48:23 +0100 (lun., 08 nov. 2010) | 2 lines

  This was actually fixed for the previous alpha.
........
  r87271 | eric.araujo | 2010-12-15 20:09:58 +0100 (mer., 15 déc. 2010) | 2 lines

  Improve trace documentation (#9264).  Patch by Eli Bendersky.
........
  r87273 | eric.araujo | 2010-12-15 20:30:15 +0100 (mer., 15 déc. 2010) | 2 lines

  Use nested method directives, rewrap long lines, fix whitespace.
........
  r87447 | eric.araujo | 2010-12-23 20:13:05 +0100 (jeu., 23 déc. 2010) | 2 lines

  Fix typo in superclass method name
........

42 files changed:
Doc/library/trace.rst
Lib/distutils/tests/__init__.py
Lib/distutils/tests/test_archive_util.py
Lib/distutils/tests/test_bdist.py
Lib/distutils/tests/test_bdist_dumb.py
Lib/distutils/tests/test_bdist_rpm.py
Lib/distutils/tests/test_bdist_wininst.py
Lib/distutils/tests/test_build_clib.py
Lib/distutils/tests/test_build_ext.py
Lib/distutils/tests/test_build_py.py
Lib/distutils/tests/test_build_scripts.py
Lib/distutils/tests/test_check.py
Lib/distutils/tests/test_clean.py
Lib/distutils/tests/test_cmd.py
Lib/distutils/tests/test_config.py
Lib/distutils/tests/test_config_cmd.py
Lib/distutils/tests/test_core.py
Lib/distutils/tests/test_cygwinccompiler.py
Lib/distutils/tests/test_dir_util.py
Lib/distutils/tests/test_dist.py
Lib/distutils/tests/test_extension.py
Lib/distutils/tests/test_file_util.py
Lib/distutils/tests/test_filelist.py
Lib/distutils/tests/test_install.py
Lib/distutils/tests/test_install_data.py
Lib/distutils/tests/test_install_headers.py
Lib/distutils/tests/test_install_lib.py
Lib/distutils/tests/test_install_scripts.py
Lib/distutils/tests/test_log.py
Lib/distutils/tests/test_msvc9compiler.py
Lib/distutils/tests/test_register.py
Lib/distutils/tests/test_sdist.py
Lib/distutils/tests/test_spawn.py
Lib/distutils/tests/test_text_file.py
Lib/distutils/tests/test_unixccompiler.py
Lib/distutils/tests/test_upload.py
Lib/distutils/tests/test_util.py
Lib/distutils/tests/test_version.py
Lib/distutils/tests/test_versionpredicate.py
Lib/test/test_gettext.py
Lib/test/test_tuple.py
Misc/NEWS

index f90f44b33e88c0c6d92ffdeaf42ad56cdcddf593..7b49c8fd49aa3d2b81066020049a6f984e8ca5e3 100644 (file)
@@ -13,103 +13,178 @@ or from the command line.
 
 .. _trace-cli:
 
-Command Line Usage
+Command-Line Usage
 ------------------
 
 The :mod:`trace` module can be invoked from the command line.  It can be as
 simple as ::
 
-   python -m trace --count somefile.py ...
+   python -m trace --count -C . somefile.py ...
 
-The above will generate annotated listings of all Python modules imported during
-the execution of :file:`somefile.py`.
+The above will execute :file:`somefile.py` and generate annotated listings of
+all Python modules imported during the execution into the current directory.
 
-The following command-line arguments are supported:
+.. program:: trace
+
+.. cmdoption:: --help
+
+   Display usage and exit.
+
+.. cmdoption:: --version
+
+   Display the version of the module and exit.
+
+Main options
+^^^^^^^^^^^^
+
+At least one of the following options must be specified when invoking
+:mod:`trace`.  The :option:`--listfuncs <-l>` option is mutually exclusive with
+the :option:`--trace <-t>` and :option:`--counts <-c>` options . When
+:option:`--listfuncs <-l>` is provided, neither :option:`--counts <-c>` nor
+:option:`--trace <-t>` are accepted, and vice versa.
+
+.. program:: trace
+
+.. cmdoption:: -c, --count
+
+   Produce a set of annotated listing files upon program completion that shows
+   how many times each statement was executed.  See also
+   :option:`--coverdir <-C>`, :option:`--file <-f>` and
+   :option:`--no-report <-R>` below.
+
+.. cmdoption:: -t, --trace
 
-:option:`--trace`, :option:`-t`
    Display lines as they are executed.
 
-:option:`--count`, :option:`-c`
-   Produce a set of  annotated listing files upon program completion that shows how
-   many times each statement was executed.
+.. cmdoption:: -l, --listfuncs
+
+   Display the functions executed by running the program.
+
+.. cmdoption:: -r, --report
 
-:option:`--report`, :option:`-r`
    Produce an annotated list from an earlier program run that used the
-   :option:`--count` and :option:`--file` arguments.
+   :option:`--count <-c>` and :option:`--file <-f>` option.  This does not
+   execute any code.
 
-:option:`--no-report`, :option:`-R`
-   Do not generate annotated listings.  This is useful if you intend to make
-   several runs with :option:`--count` then produce a single set of annotated
-   listings at the end.
+.. cmdoption:: -T, --trackcalls
+
+   Display the calling relationships exposed by running the program.
+
+Modifiers
+^^^^^^^^^
+
+.. program:: trace
 
-:option:`--listfuncs`, :option:`-l`
-   List the functions executed by running the program.
+.. cmdoption:: -f, --file=<file>
 
-:option:`--trackcalls`, :option:`-T`
-   Generate calling relationships exposed by running the program.
+   Name of a file to accumulate counts over several tracing runs.  Should be
+   used with the :option:`--count <-c>` option.
 
-:option:`--file`, :option:`-f`
-   Name a file containing (or to contain) counts.
+.. cmdoption:: -C, --coverdir=<dir>
 
-:option:`--coverdir`, :option:`-C`
-   Name a directory in which to save annotated listing files.
+   Directory where the report files go.  The coverage report for
+   ``package.module`` is written to file :file:`{dir}/{package}/{module}.cover`.
+
+.. cmdoption:: -m, --missing
 
-:option:`--missing`, :option:`-m`
    When generating annotated listings, mark lines which were not executed with
-   '``>>>>>>``'.
+   ``>>>>>>``.
+
+.. cmdoption:: -s, --summary
+
+   When using :option:`--count <-c>` or :option:`--report <-r>`, write a brief
+   summary to stdout for each file processed.
+
+.. cmdoption:: -R, --no-report
+
+   Do not generate annotated listings.  This is useful if you intend to make
+   several runs with :option:`--count <-c>`, and then produce a single set of
+   annotated listings at the end.
+
+.. cmdoption:: -g, --timing
+
+   Prefix each line with the time since the program started.  Only used while
+   tracing.
 
-:option:`--summary`, :option:`-s`
-   When using :option:`--count` or :option:`--report`, write a brief summary to
-   stdout for each file processed.
+Filters
+^^^^^^^
 
-:option:`--ignore-module`
-   Accepts comma separated list of module names. Ignore each of the named
-   module and its submodules (if it is a package).  May be given
-   multiple times.
+These options may be repeated multiple times.
 
-:option:`--ignore-dir`
-   Ignore all modules and packages in the named directory and subdirectories
-   (multiple directories can be joined by os.pathsep).  May be given multiple
-   times.
+.. program:: trace
 
+.. cmdoption:: --ignore-module=<mod>
+
+   Ignore each of the given module names and its submodules (if it is a
+   package).  The argument can be a list of names separated by a comma.
+
+.. cmdoption:: --ignore-dir=<dir>
+
+   Ignore all modules and packages in the named directory and subdirectories.
+   The argument can be a list of directories separated by :data:`os.pathsep`.
 
 .. _trace-api:
 
-Programming Interface
----------------------
+Programmatic Interface
+----------------------
+
+.. class:: Trace(count=1, trace=1, countfuncs=0, countcallers=0, ignoremods=(),\
+                 ignoredirs=(), infile=None, outfile=None, timing=False)
+
+   Create an object to trace execution of a single statement or expression.  All
+   parameters are optional.  *count* enables counting of line numbers.  *trace*
+   enables line execution tracing.  *countfuncs* enables listing of the
+   functions called during the run.  *countcallers* enables call relationship
+   tracking.  *ignoremods* is a list of modules or packages to ignore.
+   *ignoredirs* is a list of directories whose modules or packages should be
+   ignored.  *infile* is the name of the file from which to read stored count
+   information.  *outfile* is the name of the file in which to write updated
+   count information.  *timing* enables a timestamp relative to when tracing was
+   started to be displayed.
+
+    .. method:: run(cmd)
+
+       Execute the command and gather statistics from the execution with
+       the current tracing parameters.  *cmd* must be a string or code object,
+       suitable for passing into :func:`exec`.
 
+    .. method:: runctx(cmd, globals=None, locals=None)
 
-.. class:: Trace(count=1, trace=1, countfuncs=0, countcallers=0, ignoremods=(), ignoredirs=(), infile=None, outfile=None, timing=False)
+       Execute the command and gather statistics from the execution with the
+       current tracing parameters, in the defined global and local
+       environments.  If not defined, *globals* and *locals* default to empty
+       dictionaries.
 
-   Create an object to trace execution of a single statement or expression. All
-   parameters are optional.  *count* enables counting of line numbers. *trace*
-   enables line execution tracing.  *countfuncs* enables listing of the functions
-   called during the run.  *countcallers* enables call relationship tracking.
-   *ignoremods* is a list of modules or packages to ignore.  *ignoredirs* is a list
-   of directories whose modules or packages should be ignored.  *infile* is the
-   file from which to read stored count information.  *outfile* is a file in which
-   to write updated count information. *timing* enables a timestamp relative
-   to when tracing was started to be displayed.
+    .. method:: runfunc(func, *args, **kwds)
 
+       Call *func* with the given arguments under control of the :class:`Trace`
+       object with the current tracing parameters.
 
-.. method:: Trace.run(cmd)
+    .. method:: results()
 
-   Run *cmd* under control of the Trace object with the current tracing parameters.
+       Return a :class:`CoverageResults` object that contains the cumulative
+       results of all previous calls to ``run``, ``runctx`` and ``runfunc``
+       for the given :class:`Trace` instance.  Does not reset the accumulated
+       trace results.
 
+.. class:: CoverageResults
 
-.. method:: Trace.runctx(cmd, globals=None, locals=None)
+   A container for coverage results, created by :meth:`Trace.results`.  Should
+   not be created directly by the user.
 
-   Run *cmd* under control of the Trace object with the current tracing parameters
-   in the defined global and local environments.  If not defined, *globals* and
-   *locals* default to empty dictionaries.
+    .. method:: update(other)
 
+       Merge in data from another :class:`CoverageResults` object.
 
-.. method:: Trace.runfunc(func, *args, **kwds)
+    .. method:: write_results(show_missing=True, summary=False, coverdir=None)
 
-   Call *func* with the given arguments under control of the :class:`Trace` object
-   with the current tracing parameters.
+       Write coverage results.  Set *show_missing* to show lines that had no
+       hits.  Set *summary* to include in the output the coverage summary per
+       module.  *coverdir* specifies the directory into which the coverage
+       result files will be output.  If ``None``, the results for each source
+       file are placed in its directory.
 
-This is a simple example showing the use of this module::
+A simple example demonstrating the use of the programmatic interface::
 
    import sys
    import trace
index 7bdb912463cc2db567e19983af59d99ab98f77ab..1b939cbd5db2bf4bbdc74fed2fede711ba435377 100644 (file)
@@ -15,9 +15,10 @@ by import rather than matching pre-defined names.
 import os
 import sys
 import unittest
+from test.support import run_unittest
 
 
-here = os.path.dirname(__file__)
+here = os.path.dirname(__file__) or os.curdir
 
 
 def test_suite():
@@ -32,4 +33,4 @@ def test_suite():
 
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index d77302d54700eccdac4b39b43589994f8de27e2a..aff426521d9600eee741a0372823297a2ab62b45 100644 (file)
@@ -12,7 +12,7 @@ from distutils.archive_util import (check_archive_formats, make_tarball,
                                     ARCHIVE_FORMATS)
 from distutils.spawn import find_executable, spawn
 from distutils.tests import support
-from test.support import check_warnings
+from test.support import check_warnings, run_unittest
 
 try:
     import zipfile
@@ -211,4 +211,4 @@ def test_suite():
     return unittest.makeSuite(ArchiveUtilTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index 715283cb970465ff5a7777320869430f561cc165..94d40cc25b3abc4c50fb782371f2c00a82280b83 100644 (file)
@@ -4,6 +4,7 @@ import sys
 import os
 import tempfile
 import shutil
+from test.support import run_unittest
 
 from distutils.core import Distribution
 from distutils.command.bdist import bdist
@@ -40,4 +41,4 @@ def test_suite():
     return unittest.makeSuite(BuildTestCase)
 
 if __name__ == '__main__':
-    test_support.run_unittest(test_suite())
+    run_unittest(test_suite())
index bf146eb573053f3ea9d1856cd9a2d4238edfdb41..cc37fef8b0190554e1b9ff706202ecaf4f88b092 100644 (file)
@@ -3,6 +3,7 @@
 import unittest
 import sys
 import os
+from test.support import run_unittest
 
 from distutils.core import Distribution
 from distutils.command.bdist_dumb import bdist_dumb
@@ -77,4 +78,4 @@ def test_suite():
     return unittest.makeSuite(BuildDumbTestCase)
 
 if __name__ == '__main__':
-    test_support.run_unittest(test_suite())
+    run_unittest(test_suite())
index 2aa257f7e633bf9b62b2804f6c6f7c5a0cef4e3a..804fb1355f28eeedf86e1babf9ac1e49a07a2bff 100644 (file)
@@ -5,6 +5,7 @@ import sys
 import os
 import tempfile
 import shutil
+from test.support import run_unittest
 
 from distutils.core import Distribution
 from distutils.command.bdist_rpm import bdist_rpm
@@ -122,4 +123,4 @@ def test_suite():
     return unittest.makeSuite(BuildRpmTestCase)
 
 if __name__ == '__main__':
-    test_support.run_unittest(test_suite())
+    run_unittest(test_suite())
index 9b1ba6d1074138c7d05177368354e049d9ce0f1b..f9e8f89e21d4e13439f776a4e1dfd549366eeb23 100644 (file)
@@ -1,5 +1,6 @@
 """Tests for distutils.command.bdist_wininst."""
 import unittest
+from test.support import run_unittest
 
 from distutils.command.bdist_wininst import bdist_wininst
 from distutils.tests import support
@@ -27,4 +28,4 @@ def test_suite():
     return unittest.makeSuite(BuildWinInstTestCase)
 
 if __name__ == '__main__':
-    test_support.run_unittest(test_suite())
+    run_unittest(test_suite())
index d6d1a4d0c1061f665ab924d71e36229a9da580e3..69bd2bf6241e15f968ed400aa643f2ab4ca9baf9 100644 (file)
@@ -3,6 +3,8 @@ import unittest
 import os
 import sys
 
+from test.support import run_unittest
+
 from distutils.command.build_clib import build_clib
 from distutils.errors import DistutilsSetupError
 from distutils.tests import support
@@ -141,4 +143,4 @@ def test_suite():
     return unittest.makeSuite(BuildCLibTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index e8b15f156d0cab6b2da9c41f665353c7907a71c0..11844d66d35cc74ab233c285a42ca131c42a84f5 100644 (file)
@@ -15,6 +15,7 @@ from distutils.errors import (UnknownFileError, DistutilsSetupError,
 
 import unittest
 from test import support
+from test.support import run_unittest
 
 # http://bugs.python.org/issue4373
 # Don't load the xx module more than once.
index 8a69aaa0d6bcee290ff40632b9669832b615859c..da3232cea8fe2c0a43f21882edab8d85d96889a1 100644 (file)
@@ -10,6 +10,7 @@ from distutils.core import Distribution
 from distutils.errors import DistutilsFileError
 
 from distutils.tests import support
+from test.support import run_unittest
 
 
 class BuildPyTestCase(support.TempdirManager,
@@ -114,4 +115,4 @@ def test_suite():
     return unittest.makeSuite(BuildPyTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index 85b040046024498d313c56b4d9b2ebbb999a17ae..e3326b851767ddac96231188401fbf567536d956 100644 (file)
@@ -8,6 +8,7 @@ from distutils.core import Distribution
 from distutils import sysconfig
 
 from distutils.tests import support
+from test.support import run_unittest
 
 
 class BuildScriptsTestCase(support.TempdirManager,
@@ -108,4 +109,4 @@ def test_suite():
     return unittest.makeSuite(BuildScriptsTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index 7c56c04339953c6c4952580cf84a9c4c79bf50f0..229ae25c6da262aeaa60115e152865453636d1fb 100644 (file)
@@ -1,5 +1,6 @@
 """Tests for distutils.command.check."""
 import unittest
+from test.support import run_unittest
 
 from distutils.command.check import check, HAS_DOCUTILS
 from distutils.tests import support
@@ -95,4 +96,4 @@ def test_suite():
     return unittest.makeSuite(CheckTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index dbc4ee2a186f74d55d7e98e21ed98e8d494b6264..649855f7ab452280269c257c1531a72d386040cf 100755 (executable)
@@ -6,6 +6,7 @@ import getpass
 
 from distutils.command.clean import clean
 from distutils.tests import support
+from test.support import run_unittest
 
 class cleanTestCase(support.TempdirManager,
                     support.LoggingSilencer,
@@ -47,4 +48,4 @@ def test_suite():
     return unittest.makeSuite(cleanTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index 5821fcd286c2343cedef2e911b790ba0f6ba4257..195045cc7b8a2646f84562e5104139156962fe83 100644 (file)
@@ -1,7 +1,7 @@
 """Tests for distutils.cmd."""
 import unittest
 import os
-from test.support import captured_stdout
+from test.support import captured_stdout, run_unittest
 
 from distutils.cmd import Command
 from distutils.dist import Distribution
@@ -99,7 +99,7 @@ class CommandTestCase(unittest.TestCase):
 
     def test_ensure_dirname(self):
         cmd = self.cmd
-        cmd.option1 = os.path.dirname(__file__)
+        cmd.option1 = os.path.dirname(__file__) or os.curdir
         cmd.ensure_dirname('option1')
         cmd.option2 = 'xxx'
         self.assertRaises(DistutilsOptionError, cmd.ensure_dirname, 'option2')
@@ -124,4 +124,4 @@ def test_suite():
     return unittest.makeSuite(CommandTestCase)
 
 if __name__ == '__main__':
-    test_support.run_unittest(test_suite())
+    run_unittest(test_suite())
index 2c075d7ee79adbf65af69006ed0b983e655598be..525bee9416ab27b20543ce55b1c71864b496d449 100644 (file)
@@ -10,6 +10,7 @@ from distutils.log import set_threshold
 from distutils.log import WARN
 
 from distutils.tests import support
+from test.support import run_unittest
 
 PYPIRC = """\
 [distutils]
@@ -116,4 +117,4 @@ def test_suite():
     return unittest.makeSuite(PyPIRCCommandTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index fcb798e73ba0283922570becab50170a50b142e9..4f7ebdd9fc1b1e3bcd36730d277244ce561c637d 100644 (file)
@@ -2,6 +2,7 @@
 import unittest
 import os
 import sys
+from test.support import run_unittest
 
 from distutils.command.config import dump_file, config
 from distutils.tests import support
@@ -86,4 +87,4 @@ def test_suite():
     return unittest.makeSuite(ConfigTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index d781555da57252e9d3978c76a536f3f20feabbfb..41321f7db4eee64affcd2692175350498ff85918 100644 (file)
@@ -6,7 +6,7 @@ import os
 import shutil
 import sys
 import test.support
-from test.support import captured_stdout
+from test.support import captured_stdout, run_unittest
 import unittest
 from distutils.tests import support
 
@@ -105,4 +105,4 @@ def test_suite():
     return unittest.makeSuite(CoreTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index 79377a7763efe366d7aaa7ca4d3ecedc84e16fd0..856921679d6350cd863e97f5626e59f2394c7b98 100644 (file)
@@ -4,6 +4,7 @@ import sys
 import os
 from io import BytesIO
 import subprocess
+from test.support import run_unittest
 
 from distutils import cygwinccompiler
 from distutils.cygwinccompiler import (CygwinCCompiler, check_config_h,
@@ -151,4 +152,4 @@ def test_suite():
     return unittest.makeSuite(CygwinCCompilerTestCase)
 
 if __name__ == '__main__':
-    test_support.run_unittest(test_suite())
+    run_unittest(test_suite())
index 84a0ec6cfcb03cf5c66a5af1d2198ece231c9dec..ce74589dde515987e64c65acc54384f47c8d3012 100644 (file)
@@ -10,6 +10,7 @@ from distutils.dir_util import (mkpath, remove_tree, create_tree, copy_tree,
 
 from distutils import log
 from distutils.tests import support
+from test.support import run_unittest
 
 class DirUtilTestCase(support.TempdirManager, unittest.TestCase):
 
@@ -112,4 +113,4 @@ def test_suite():
     return unittest.makeSuite(DirUtilTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index 2c19d89266861ddc559de039e3e28c2ea9bf0575..1624f00e53fcec6061e814156ad66ea2585ab332 100644 (file)
@@ -10,7 +10,7 @@ import textwrap
 from distutils.dist import Distribution, fix_help_options
 from distutils.cmd import Command
 
-from test.support import TESTFN, captured_stdout
+from test.support import TESTFN, captured_stdout, run_unittest
 from distutils.tests import support
 
 
@@ -326,4 +326,4 @@ def test_suite():
     return suite
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index d9a47a89c86fd333ee105f2b482a2ce6cd7913c6..e35f2738b6a21966e862cb0bbecbe92f6b0d60ef 100755 (executable)
@@ -3,7 +3,7 @@ import unittest
 import os
 import warnings
 
-from test.support import check_warnings
+from test.support import check_warnings, run_unittest
 from distutils.extension import read_setup_file, Extension
 
 class ExtensionTestCase(unittest.TestCase):
@@ -66,4 +66,4 @@ def test_suite():
     return unittest.makeSuite(ExtensionTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index 730ffde4ffdac4e218bc88580b4d01edf35e59d7..3c3e3dcb3bff85310df31254274abae77c1b8181 100644 (file)
@@ -6,6 +6,7 @@ import shutil
 from distutils.file_util import move_file
 from distutils import log
 from distutils.tests import support
+from test.support import run_unittest
 
 class FileUtilTestCase(support.TempdirManager, unittest.TestCase):
 
@@ -62,4 +63,4 @@ def test_suite():
     return unittest.makeSuite(FileUtilTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index d2a2b449eeb42c0b5667d95715b31913c450c480..c7e5201b1725fbc33481178aa421eec29ffd076b 100644 (file)
@@ -2,7 +2,7 @@
 import unittest
 
 from distutils.filelist import glob_to_re, FileList
-from test.support import captured_stdout
+from test.support import captured_stdout, run_unittest
 from distutils import debug
 
 class FileListTestCase(unittest.TestCase):
@@ -39,4 +39,4 @@ def test_suite():
     return unittest.makeSuite(FileListTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index f9c142e446ce0dcf47030a6388a04093be2415cb..a76e3e7a3cb0dc806a9374fe9093e3c213ef95c1 100644 (file)
@@ -6,7 +6,7 @@ import sys
 import unittest
 import site
 
-from test.support import captured_stdout
+from test.support import captured_stdout, run_unittest
 
 from distutils.command.install import install
 from distutils.command import install as install_module
@@ -203,4 +203,4 @@ def test_suite():
     return unittest.makeSuite(InstallTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index 86db4a12c5787f025c9956ee9804d05aecc9a7b8..4d8c00acb99e345773a8fb0d55b55643333ed8e6 100644 (file)
@@ -6,6 +6,7 @@ import getpass
 
 from distutils.command.install_data import install_data
 from distutils.tests import support
+from test.support import run_unittest
 
 class InstallDataTestCase(support.TempdirManager,
                           support.LoggingSilencer,
@@ -73,4 +74,4 @@ def test_suite():
     return unittest.makeSuite(InstallDataTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index aa8a4e6014fae72fa2c7ef1b7d934222676f7e75..d953157bb7e98ea17b2805e910d1ecb06015a00b 100644 (file)
@@ -6,6 +6,7 @@ import getpass
 
 from distutils.command.install_headers import install_headers
 from distutils.tests import support
+from test.support import run_unittest
 
 class InstallHeadersTestCase(support.TempdirManager,
                              support.LoggingSilencer,
@@ -37,4 +38,4 @@ def test_suite():
     return unittest.makeSuite(InstallHeadersTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index 46363046920d3775ed606b4c0e851fb475b3c8e4..fddaabe111d5d2cd7e799bf41a4d7e5910b31cc3 100644 (file)
@@ -7,6 +7,7 @@ from distutils.command.install_lib import install_lib
 from distutils.extension import Extension
 from distutils.tests import support
 from distutils.errors import DistutilsOptionError
+from test.support import run_unittest
 
 class InstallLibTestCase(support.TempdirManager,
                          support.LoggingSilencer,
@@ -98,4 +99,4 @@ def test_suite():
     return unittest.makeSuite(InstallLibTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index 08360d297b8ee58bb42c851ba18be29a56d84f64..8952e744e5d365e8439fbb9d52bf9e4d770f8366 100644 (file)
@@ -7,6 +7,7 @@ from distutils.command.install_scripts import install_scripts
 from distutils.core import Distribution
 
 from distutils.tests import support
+from test.support import run_unittest
 
 
 class InstallScriptsTestCase(support.TempdirManager,
@@ -78,4 +79,4 @@ def test_suite():
     return unittest.makeSuite(InstallScriptsTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index 9d40dcd72c8d7cfc28e7d912f19fcdfb2db25019..ce66ee51e7c177dfc562c469f3e09d9ee59093c0 100644 (file)
@@ -3,6 +3,7 @@
 import sys
 import unittest
 from tempfile import NamedTemporaryFile
+from test.support import run_unittest
 
 from distutils import log
 
@@ -33,4 +34,4 @@ def test_suite():
     return unittest.makeSuite(TestLog)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index 570fda121efd0a3bf45e682d01af1a873c964f61..a0d62efcfde35945baefc12aa32e9fdc8d4e450d 100644 (file)
@@ -5,6 +5,7 @@ import os
 
 from distutils.errors import DistutilsPlatformError
 from distutils.tests import support
+from test.support import run_unittest
 
 _MANIFEST = """\
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
@@ -137,4 +138,4 @@ def test_suite():
     return unittest.makeSuite(msvc9compilerTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index c98e28a1a4fa3553023702e47c31b613e536f54c..c712f56a788e6aabcdb120e01977f823aedf8b49 100644 (file)
@@ -6,7 +6,7 @@ import getpass
 import urllib
 import warnings
 
-from test.support import check_warnings
+from test.support import check_warnings, run_unittest
 
 from distutils.command import register as register_module
 from distutils.command.register import register
@@ -259,4 +259,4 @@ def test_suite():
     return unittest.makeSuite(RegisterTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index d734ea0ac5218f5b57ce11843fce20580b1ad3c0..655e50dcfc2f84dc76b2fa83f9bf1e16cc2a281b 100644 (file)
@@ -8,11 +8,9 @@ import sys
 import tempfile
 import warnings
 
-from test.support import check_warnings
-from test.support import captured_stdout
+from test.support import captured_stdout, check_warnings, run_unittest
 
-from distutils.command.sdist import sdist
-from distutils.command.sdist import show_formats
+from distutils.command.sdist import sdist, show_formats
 from distutils.core import Distribution
 from distutils.tests.test_config import PyPIRCCommandTestCase
 from distutils.errors import DistutilsExecError, DistutilsOptionError
@@ -356,4 +354,4 @@ def test_suite():
     return unittest.makeSuite(SDistTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index 0616c9f2e33dfc46336a68c16cb9a0cfd491bffa..6c7eb20c47177175662c28fa3053465070e5d9d6 100644 (file)
@@ -2,7 +2,7 @@
 import unittest
 import os
 import time
-from test.support import captured_stdout
+from test.support import captured_stdout, run_unittest
 
 from distutils.spawn import _nt_quote_args
 from distutils.spawn import spawn, find_executable
@@ -55,4 +55,4 @@ def test_suite():
     return unittest.makeSuite(SpawnTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index f1e32b6cc6495276e6b1207a163612184b59ee4b..7e76240a9a30712c8c9991d147a688c6b3169846 100644 (file)
@@ -3,6 +3,7 @@ import os
 import unittest
 from distutils.text_file import TextFile
 from distutils.tests import support
+from test.support import run_unittest
 
 TEST_DATA = """# test file
 
@@ -103,4 +104,4 @@ def test_suite():
     return unittest.makeSuite(TextFileTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index 3a41e6fcaaf0563bad1187cc61229f2d6b9d055d..1bff38e9eefe041d9a2de1aa69a6f4ce55005174 100644 (file)
@@ -1,6 +1,7 @@
 """Tests for distutils.unixccompiler."""
 import sys
 import unittest
+from test.support import run_unittest
 
 from distutils import sysconfig
 from distutils.unixccompiler import UnixCCompiler
@@ -118,4 +119,4 @@ def test_suite():
     return unittest.makeSuite(UnixCCompilerTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index 8891820d670a6474929c2c82c44407d59fc548e5..4c6464a32e8a0f55b2ccba0179f4d3bc83c888d7 100644 (file)
@@ -1,13 +1,12 @@
 """Tests for distutils.command.upload."""
-import sys
 import os
 import unittest
 import http.client as httpclient
+from test.support import run_unittest
 
 from distutils.command.upload import upload
 from distutils.core import Distribution
 
-from distutils.tests import support
 from distutils.tests.test_config import PYPIRC, PyPIRCCommandTestCase
 
 PYPIRC_LONG_PASSWORD = """\
@@ -136,4 +135,4 @@ def test_suite():
     return unittest.makeSuite(uploadTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index f40caac838a34824e284c0e95b543bc2548c369e..8ff5ae20856be7cb335fdf719ea92a34102ec84a 100644 (file)
@@ -3,6 +3,7 @@ import os
 import sys
 import unittest
 from copy import copy
+from test.support import run_unittest
 
 from distutils.errors import DistutilsPlatformError, DistutilsByteCompileError
 from distutils.util import (get_platform, convert_path, change_root,
@@ -274,4 +275,4 @@ def test_suite():
     return unittest.makeSuite(UtilTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index 980f83f29a2d21853dde407b126fd7ad0a4b7ff1..15f14c7de3f1256aa74199ec01ea0bc978db6fc2 100644 (file)
@@ -2,6 +2,7 @@
 import unittest
 from distutils.version import LooseVersion
 from distutils.version import StrictVersion
+from test.support import run_unittest
 
 class VersionTestCase(unittest.TestCase):
 
@@ -67,4 +68,4 @@ def test_suite():
     return unittest.makeSuite(VersionTestCase)
 
 if __name__ == "__main__":
-    unittest.main(defaultTest="test_suite")
+    run_unittest(test_suite())
index 8a60dbe8060ce7507fa00718664515c25515efa8..28ae09dc2058dab6258c41b3f65a0034adf0c4ba 100644 (file)
@@ -4,6 +4,10 @@
 
 import distutils.versionpredicate
 import doctest
+from test.support import run_unittest
 
 def test_suite():
     return doctest.DocTestSuite(distutils.versionpredicate)
+
+if __name__ == '__main__':
+    run_unittest(test_suite())
index 634c6071938020abf676308d01c47d8b73af2c38..5456948ca4b0488cc92c0d50dbebf673794eff56 100644 (file)
@@ -64,15 +64,12 @@ class GettextBaseTest(unittest.TestCase):
     def setUp(self):
         if not os.path.isdir(LOCALEDIR):
             os.makedirs(LOCALEDIR)
-        fp = open(MOFILE, 'wb')
-        fp.write(base64.decodebytes(GNU_MO_DATA))
-        fp.close()
-        fp = open(UMOFILE, 'wb')
-        fp.write(base64.decodebytes(UMO_DATA))
-        fp.close()
-        fp = open(MMOFILE, 'wb')
-        fp.write(base64.decodebytes(MMO_DATA))
-        fp.close()
+        with open(MOFILE, 'wb') as fp:
+            fp.write(base64.decodebytes(GNU_MO_DATA))
+        with open(UMOFILE, 'wb') as fp:
+            fp.write(base64.decodebytes(UMO_DATA))
+        with open(MMOFILE, 'wb') as fp:
+            fp.write(base64.decodebytes(MMO_DATA))
         self.env = support.EnvironmentVarGuard()
         self.env['LANGUAGE'] = 'xx'
         gettext._translations.clear()
@@ -135,9 +132,8 @@ trggrkg zrffntr pngnybt yvoenel.''')
     def test_the_alternative_interface(self):
         eq = self.assertEqual
         # test the alternative interface
-        fp = open(self.mofile, 'rb')
-        t = gettext.GNUTranslations(fp)
-        fp.close()
+        with open(self.mofile, 'rb') as fp:
+            t = gettext.GNUTranslations(fp)
         # Install the translation object
         t.install()
         eq(_('nudge nudge'), 'wink wink')
@@ -227,9 +223,8 @@ class PluralFormsTestCase(GettextBaseTest):
 
     def test_plural_forms2(self):
         eq = self.assertEqual
-        fp = open(self.mofile, 'rb')
-        t = gettext.GNUTranslations(fp)
-        fp.close()
+        with open(self.mofile, 'rb') as fp:
+            t = gettext.GNUTranslations(fp)
         x = t.ngettext('There is %s file', 'There are %s files', 1)
         eq(x, 'Hay %s fichero')
         x = t.ngettext('There is %s file', 'There are %s files', 2)
@@ -299,11 +294,8 @@ class PluralFormsTestCase(GettextBaseTest):
 class UnicodeTranslationsTest(GettextBaseTest):
     def setUp(self):
         GettextBaseTest.setUp(self)
-        fp = open(UMOFILE, 'rb')
-        try:
+        with open(UMOFILE, 'rb') as fp:
             self.t = gettext.GNUTranslations(fp)
-        finally:
-            fp.close()
         self._ = self.t.gettext
 
     def test_unicode_msgid(self):
@@ -319,15 +311,12 @@ class UnicodeTranslationsTest(GettextBaseTest):
 class WeirdMetadataTest(GettextBaseTest):
     def setUp(self):
         GettextBaseTest.setUp(self)
-        fp = open(MMOFILE, 'rb')
-        try:
+        with open(MMOFILE, 'rb') as fp:
             try:
                 self.t = gettext.GNUTranslations(fp)
             except:
                 self.tearDown()
                 raise
-        finally:
-            fp.close()
 
     def test_weird_metadata(self):
         info = self.t.info()
index 53065bb2046c6d82408eaa152a0c9c7a45fea76f..f5837479ea145963a3793a93c56a10bf973cfb0b 100644 (file)
@@ -6,7 +6,7 @@ class TupleTest(seq_tests.CommonTest):
     type2test = tuple
 
     def test_constructors(self):
-        super().test_len()
+        super().test_constructors()
         # calling built-in types without argument must return empty
         self.assertEqual(tuple(), ())
         t0_3 = (0, 1, 2, 3)
index ba75e82d7a6c361118f28f39077bf0deb05e0ff0..88c6749835fec85f79e0a8a192573c2cafc0a85c 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -37,6 +37,10 @@ Core and Builtins
 Library
 -------
 
+- Issue #2236: distutils' mkpath ignored the mode parameter.
+
+- Fix typo in one sdist option (medata-check).
+
 - Issue #11089: Fix performance issue limiting the use of ConfigParser()
   with large config files.