[Python-checkins] cpython (2.7): Add test file for scripts in Tools (#13447).

eric.araujo python-checkins at python.org
Sat Feb 25 16:25:08 CET 2012


http://hg.python.org/cpython/rev/020364d3e359
changeset:   75257:020364d3e359
branch:      2.7
user:        Éric Araujo <merwok at netwok.org>
date:        Sat Feb 25 16:24:59 2012 +0100
summary:
  Add test file for scripts in Tools (#13447).

When people find bugs in scripts such as reindent.py, msgfmt.py or
pygettext.py, we have to try to reproduce the bug manually, apply a fix
and test manually again.  The alternative is to only read the code and
trust that it works.  This test file is a way to stop that
unsatisfactory state of things and write proper unit tests instead.

files:
  Lib/test/test_tools.py |  39 ++++++++++++++++++++++++++++++
  Misc/NEWS              |   3 ++
  2 files changed, 42 insertions(+), 0 deletions(-)


diff --git a/Lib/test/test_tools.py b/Lib/test/test_tools.py
new file mode 100644
--- /dev/null
+++ b/Lib/test/test_tools.py
@@ -0,0 +1,39 @@
+"""Tests for scripts in the Tools directory.
+
+This file contains regression tests for some of the scripts found in the
+Tools directory of a Python checkout or tarball, such as reindent.py.
+"""
+
+import os
+import unittest
+import sysconfig
+from test import test_support
+from test.script_helper import assert_python_ok
+
+if not sysconfig.is_python_build():
+    # XXX some installers do contain the tools, should we detect that
+    # and run the tests in that case too?
+    raise unittest.SkipTest('test irrelevant for an installed Python')
+
+srcdir = sysconfig.get_config_var('projectbase')
+basepath = os.path.join(os.getcwd(), srcdir, 'Tools')
+
+
+class ReindentTests(unittest.TestCase):
+    script = os.path.join(basepath, 'scripts', 'reindent.py')
+
+    def test_noargs(self):
+        assert_python_ok(self.script)
+
+    def test_help(self):
+        rc, out, err = assert_python_ok(self.script, '-h')
+        self.assertEqual(out, b'')
+        self.assertGreater(err, b'')
+
+
+def test_main():
+    test_support.run_unittest(ReindentTests)
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -98,6 +98,9 @@
 Library
 -------
 
+- Issue #13447: Add a test file to host regression tests for bugs in the
+  scripts found in the Tools directory.
+
 - Issue #6884: Fix long-standing bugs with MANIFEST.in parsing in distutils
   on Windows.
 

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list